Apparatus and method of controlling multi-input-single-output systems

ABSTRACT

An apparatus and method is disclosed for automatically controlling multi-input-single-output (MISO) systems or processes. The control output signal of a single-input-single-output (SISO) automatic controller is converted by a reverse, sequential or combined split-range setter into a plurality of ranges of signals so that the SISO controller is converted to a single-input-multi-output (SIMO) automatic controller based on certain criteria; and the resulting controller output signals are able to manipulate a plurality of actuators to control one continuous process variable in different operating conditions. Without the need of building process mathematical models, this inventive apparatus and method is useful for automatically controlling unevenly paired multivariable systems or processes where there are more system inputs than outputs including but not limited to pH processes, chemical reactors, and air handling units.

The invention relates to automatic control of multi-input-single-output(MISO) systems including industrial processes, equipment, facilities,buildings, homes, devices, engines, robots, vehicles, aircraft,space-vehicles, appliances and other systems, and more particularly to amethod and apparatus for automatically controlling a continuous processvariable by manipulating one or more actuators individually orsimultaneously. The control system is able to force the controlledprocess variable to track its setpoint under significant system dynamicchanges due to batch, load, production, configuration, season, time ofthe day, or operating conditions, and under large disturbancesoriginating from product flow, plant upsets, weather, wear and tear ofsensors, actuators, or other components.

Multi-input-single-output (MISO) systems are commonly found insituations where 2 or more opposite control actions are used in order tocontrol the process variable in different operating conditions. In thesecases, two or more actuators are used to bring in the opposite controlactions. For instance,

-   -   In a wastewater treatment process, acid or caustic is added to        control the pH value and keep it near its neutrality by using 2        actuators, namely an acid control valve and a caustic control        valve;    -   A chemical reactor where steam is used to raise the reactor        temperature during its startup stage and cooling water is used        to suppress the reactor temperature and keep it within its        safety range during the reaction stage when heat is generated        due to exothermal chemical reaction.    -   An air handling unit (AHU) in a building control system where a        heating valve manipulates the warm water flow, a cooling valve        manipulates the chilled water flow, and a damper manipulates the        fresh outside air flow. Depending on the temperature setpoint        and inside and outside environment, the supply air temperature        can be controlled by using one or more actuators.

In these applications, control actions cancel each other. To avoid thefighting among multiple control actions, we may apply “reversesplit-range control” where one actuator is working and the others areshut off or remain in fixed positions.

There are multi-input-single-output (MISO) systems where the scale ofthe control action is so large during certain operating conditions thatmore actuators are used. For instance,

-   -   both a coarse valve and a fine valve may be used to dose acid        for pH control. When near neutrality, a very small dose of acid        can cause the pH to change. The use of one valve may not cover        the wide range needed for effective acid flow control.    -   a chemical reactor where a large cooling water valve may be        installed working in parallel with a regular size cooling water        valve. In case the regular cooling water stream is insufficient        to control the reactor temperature, a sufficient amount of        cooling water can be brought into the system to suppress the        reactor temperature to prevent a runaway situation.

In these applications, where the control actions compliment each other,we may apply “sequential split-range control” where multiple actuatorsare brought into action gradually depending on the operating conditions.

Since the input-output relationship between each actuator and thecontrolled process variable can be considered a sub-system with its owndynamics, using one controller with fixed tuning parameters cannothandle the significant dynamic changes when switching between thesesub-systems. Thus, MISO systems are difficult to control resulting inlow production efficiency, poor product quality, and high energyconsumption. In addition, frequent manual tuning of the controllerparameters causes high maintenance cost.

In the accompanying drawing:

FIG. 1 is a block diagram illustrating a 1-input-2-output (1×2)model-free adaptive (MFA) controller that controls a 2-input-1-output(2×1) system.

FIG. 2 is a block diagram illustrating the architecture of a1-input-2-output (1×2) model-free adaptive (MFA) controller.

FIG. 3 is a drawing illustrating a mechanism of a reverse split-rangesetter that can easily split a controller signal into 2 or more rangesto manipulate 2 different actuators individually, simultaneously, orneither.

FIG. 4 is a drawing illustrating a mechanism of a reverse split-rangesetter that is an alternative design to split a controller signal into 2or more ranges to manipulate 2 different actuators individually,simultaneously, or neither.

FIG. 5 is a drawing illustrating a mechanism of a sequential split-rangesetter that can easily convert a controller signal into 2 or more rangesto manipulate 2 different actuators individually, simultaneously, orneither.

FIG. 6 is a drawing illustrating a mechanism of a sequential split-rangesetter that is an alternative design to convert a controller signal into2 or more ranges to manipulate 2 different actuators individually,simultaneously, or neither.

FIG. 7 is a block diagram illustrating a 1-input-3-output (1×3)model-free adaptive (MFA) controller that controls a 3-input-1-output(3×1) system.

FIG. 8 is a block diagram illustrating the architecture of a1-input-3-output (1×3) model-free adaptive (MFA) controller.

FIG. 9 is a drawing illustrating a mechanism of a reverse split-rangesetter that can easily split a single controller output into 3 or moreranges to manipulate 3 different actuators individually, simultaneously,or not at all.

FIG. 10 is a drawing illustrating a mechanism of a reverse split-rangesetter that is an alternative design to split a single controller outputinto 3 or more ranges to manipulate 3 different actuators individually,simultaneously, or not at all.

FIG. 11 is a drawing illustrating a mechanism of a sequentialsplit-range setter that can convert a single controller output into 3 ormore ranges to manipulate 3 different actuators individually,simultaneously, or not at all.

FIG. 12 is a drawing illustrating a mechanism or a sequentialsplit-range setter that is an alternative design to convert a singlecontroller output into 3 or more ranges to manipulate 3 differentactuators individually, simultaneously, or not at all.

FIG. 13 is a block diagram illustrating a 1-input-M-output (1×M)model-free adaptive (MFA) controller that controls an M-input-1-output(M×1) system.

FIG. 14 is a block diagram illustrating the architecture of a1-input-M-output (1×M) model-free adaptive (MFA) controller.

FIG. 15 is a block diagram illustrating a 1-input-2-output (1×2)proportional-integral-derivative (PID) controller that controls a2-input-1-output (2×1) system.

FIG. 16 is a block diagram illustrating a 1-input-M-output (1×M)proportional-integral-derivative (PID) controller that controls anM-input-1-output (M×1) system.

FIG. 17 is a block diagram illustrating a single-input-multi-output(SIMO) controller that controls a multi-input-single-output (MISO)system.

FIG. 18 is a drawing illustrating a mechanism of a reverse split-rangesetter that can easily split a single controller output into M or moreranges to manipulate M different actuators individually, simultaneously,or not at all.

FIG. 19 is a drawing illustrating a mechanism of a sequentialsplit-range setter that can convert a single controller output into M ormore ranges to manipulate M different actuators individually,simultaneously, or not at all.

FIG. 20 is a block diagram illustrating a single-input-multi-output(SIMO) controller that controls a multi-input-single-output (MISO)system, where a combined split-range setter is used.

The term “mechanism” is used herein to represent hardware, software, orany combination thereof. The term “process” is used herein to representa physical system or process with inputs and outputs that have dynamicrelationships.

Description

A. 1-input-2-Output Model-Free Adaptive (MFA) Controller

FIG. 1 illustrates a 1-input-2-output (1×2) MFA controller that controlsa 2-input-1-output (2×1) system. The control system consists of a1-input-2-output (1×2) MFA controller 10, a 2-input-1-output (2×1)system 12, actuator A₁ 6, actuator A₂ 8, and signal adders, 14, 16. Thesignals shown in FIG. 1 are as follows:

-   -   r(t)—Setpoint.    -   y(t)—Measured Variable or the Process Variable, y(t)=x(t)+d(t).    -   x(t)—System Output.    -   V₁(t)—Controller Output 1 to manipulate Actuator A₁.    -   V₂(t)—Controller Output 2 to manipulate Actuator A₂.    -   d(t)—Disturbance, the disturbance caused by noise or load        changes.    -   e(t)—Error between the Setpoint and Measured Variable,        e(t)=r(t)−y(t).

The control objective is for the controller to produce outputs V₁(t) andV₂(t) to manipulate actuators A₁ and A₂ so that the measured variabley(t) tracks the given trajectory of its setpoint r(t) under variationsof setpoint, disturbance, and process dynamics. In other words, the taskof the MFA controller is to minimize the error e(t) in an onlinefashion.

We select the objective function for the MFA control system as$\begin{matrix}{{E_{S}(t)} = {{\frac{1}{2}{e(t)}^{2}}\quad = {{\frac{1}{2}\left\lbrack {{r(t)} - {y(t)}} \right\rbrack}^{2}.}}} & (1)\end{matrix}$

The minimization of E_(s)(t) is achieved by (i) the regulatory controlcapability of the MFA controller whose outputs V₁(t) and V₂(t)manipulate the manipulated variables forcing the process variable y(t)to track its setpoint r(t); and (ii) the adjustment of the MFAcontroller weighting factors that allow the controller to deal with thedynamic changes, large disturbances, and other uncertainties of thecontrol system.

FIG. 2 illustrates the architecture of a 1-input-2-output model-freeadaptive (MFA) controller. A linear multilayer neural network 18 is usedin the design of the controller. The neural network has one input layer20, one hidden layer 22 with N neurons, and one output layer 24 with oneneuron.

The input signal e(t) to the input layer 20 is first converted to anormalized error signal E₁ with a range of −1 to 1 by using thenormalization unit 26, where N(·) denotes a normalization function. Theoutput of the normalization unit 26 is then scaled by a scaling functionL_(x)(·) 25: $\begin{matrix}{{L_{x}( \cdot )} = {\frac{K_{cx}}{T_{cx}}.}} & (2)\end{matrix}$The value of E₁ at time t is computed with function L_(x)(·) and N(·):$\begin{matrix}{{E_{1} = {\frac{K_{cx}}{T_{cx}}{N\left( {e(t)} \right)}}},} & (3)\end{matrix}$where K_(cx)>0 is defined as controller gain and T_(cx) is the userselected process time constant. K_(cx) is used to compensate for theprocess steady-state gain and T_(cx) provides information for thedynamic behavior of the process. When the error signal is scaled withthese parameters, the controller's behavior can be manipulated byadjusting the parameters.

The E₁ signal then goes iteratively through a series of delay units 28,where z⁻¹ denotes the unit delay operator. A set of normalized andscaled error signals E₂ to E_(N) is then generated. In this way, acontinuous signal e(t) is converted to a series of discrete signals,which are used as the inputs to the neural network. These delayed errorsignals E_(i)=1, . . . N, are then conveyed to the hidden layer throughthe neural network connections. This is equivalent to adding a feedbackstructure to the neural network. Then the regular static multilayerneural network becomes a dynamic neural network.

A model-free adaptive controller uses a dynamic block such as a dynamicneural network. A dynamic block is just another name for a dynamicsystem, whose inputs and outputs have dynamic relationships.

Each input signal can be conveyed separately to each of the neurons inthe hidden layer 22 via a path weighted by an individual weightingfactor w_(ij), where i=1,2, . . . N, and j=1, 2, . . . N. The inputs toeach of the neurons in the hidden layer are summed by adder 30 toproduce signal p_(j). Then the signal p_(j) is filtered by an activationfunction 32 to produce q_(i), where j denotes the jth neuron in thehidden layer.

A piecewise continuous linear function ƒ(x) mapping real numbers to[0,1] is used as the activation function in the neural network asdefined by $\begin{matrix}\begin{matrix}{{{f(x)} = 0},} & {\quad{{{if}\quad x} < {- \frac{b}{a}}}}\end{matrix} & \left( {4a} \right) \\\begin{matrix}{{{f(x)} = {{ax} + b}},} & {{{if} - \frac{b}{a}} \leq x \leq \frac{b}{a}}\end{matrix} & \left( {4b} \right) \\\begin{matrix}{{{f(x)} = 1},} & {\quad{{{if}\quad x} > \frac{b}{a}}}\end{matrix} & \left( {4c} \right)\end{matrix}$where a is an arbitrary constant and b=½.

Each output signal from the hidden layer is conveyed to the singleneuron in the output layer 24 via a path weighted by an individualweighting factor h_(j), where j=1,2, . . . N. These signals are summedin adder 34 to produce signal z(·), and then filtered by activationfunction 36 to produce the output o(·) of the neural network 18 with arange of 0 to 1.

A de-normalization function 38 defined byD(x)=100x,   (5)maps the o(·) signal back into the real space to produce the controllersignal u(t).

The algorithm governing the input-output of the controller consists ofthe following difference equations: $\begin{matrix}{{{p_{j}(n)} = {\sum\limits_{i = 1}^{N}{{w_{ij}(n)}{E_{i}(n)}}}},} & (6) \\{{{q_{j}(n)} = {f\left( {p_{j}(n)} \right)}},} & (7) \\\begin{matrix}{{{o(n)} = {f\left( {\sum\limits_{j = 1}^{N}{{h_{j}(n)}{q_{j}(n)}}} \right)}},} \\{{= {{a{\sum\limits_{j = 1}^{N}{{h_{j}(n)}{q_{j}(n)}}}} + b}},}\end{matrix} & (8)\end{matrix}$where the variable of function ƒ(·) is in the range specified inEquation (4b), and o(n) is bounded by the limits specified in Equations(4a) and (4c). The controller signal u(t) becomes $\begin{matrix}\begin{matrix}{{u(t)} = {{{K_{cx}( \cdot )}{e(t)}} + {D\left( {o(t)} \right)}}} \\{{= {{{K_{cx}( \cdot )}{e(t)}} + {100\left\lbrack {{a{\sum\limits_{j = 1}^{N}{{h_{j}(n)}{q_{j}(n)}}}} + b} \right\rbrack}}},}\end{matrix} & (9)\end{matrix}$where n denotes the nth iteration; o(t) is the continuous function ofo(n); D(·) is the de-normalization function; and K_(cx)(·)>0, thecontroller gain 42, is a variable used to adjust the magnitude of thecontroller. This is the same variable as in the scaling functionL_(x)(·) 25 and is useful to fine tune the controller performance orkeep the system stable. The controller signal u(t) then goes into asplit-range setter R(·) 44 to produce the controller outputs V₁(t) andV₂(t).

An online learning algorithm as described in the U.S. Pat. No. 6,556,980B1 is an example of one algorithm that can be used to continuouslyupdate the values of the weighting factors of the MFA controller asfollows:Δw _(ij)(n)=a ² ηe(n)E ₁(n)h _(j)(n),   (10)Δh _(j)(n)=aηe(n)q _(j)(n).   (11)

The equations (1) through (11) work for both process direct-acting orreverse acting types. Direct-acting means that an increase in theprocess input will cause its output to increase, and vice versa.Reverse-acting means that an increase in the process input will causeits output to decrease, and vice versa. To keep the above equationsworking for both direct and reverse acting cases, e(t) is calculateddifferently based on the acting type of the process as follows:e(t)=r(t)−y(t), if direct acting   (12a)e(t)=−[r(t)−y(t)]. if reverse acting   (12b)

This is a general treatment for the process acting types. It applies toall model-free adaptive controllers to be introduced below.

FIG. 3 illustrates a reverse split-range setter that splits thecontroller signal u(t) into 2 or more ranges to manipulate 2 differentactuators individually, simultaneously, or neither by moving and settingthe knobs R₁ and R₂ 50, respectively. The controller outputs V₁(t) andV₂(t) are calculated based on the following formulas as implemented inthe split-range setter mechanism 44: $\begin{matrix}\begin{matrix}{{{V_{1}(t)} = {{{- 100}\frac{u(t)}{R_{1}}} + 100}},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{1}} \right\rbrack}\end{matrix} & \left( {13a} \right) \\\begin{matrix}{{{V_{1}(t)} = 0};} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left( {R_{1},100} \right\rbrack}}\end{matrix} & \left( {13b} \right)\end{matrix}$where 0<R₁≦100, which defines the split range of u(t) for controlleroutput V₁(t); and $\begin{matrix}\begin{matrix}{{{V_{2}(t)} = {{{- 100}\frac{{u(t)} - 100}{R_{2} - 100}} + 100}},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{2},100} \right\rbrack}\end{matrix} & \left( {14a} \right) \\\begin{matrix}{{{V_{2}(t)} = 0},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{2}} \right)}}\end{matrix} & \left( {14b} \right)\end{matrix}$where 0≦R₂<100, which defines the split range of u(t) for controlleroutput V₂(t). The signals u(t), V₁(t), and V₂(t) all have a workingrange of 0% to 100%. In this design, the control valves are shut at 0%during their off position. We can move and set the R₁ and R₂ knobsfreely within its (0, 100) range to produce controller outputs V₁(t),and V₂(t), where there may be a deadband, or an overlap, or no gaps inbetween. These 3 types of settings are all useful depending on theactuators and actual applications.

To expand the design, we can easily rescale each of the output signalsV₁(t) and V₂(t) from its 0% to 100% range to an engineering value rangeby using a linear function. In addition, control limits and constraintscan be applied to these signals for safety or other reasons to limit thecontrol actions. These design concepts can be readily applied to all thecontrollers presented in this patent.

As illustrated in FIG. 2, the information of R₁ and R₂ inside thesplit-range setter is routed through signal lines 46 and 48 to elementsL_(x)(·) 25 and K_(cx)(·) 42, respectively. Based on this design, theuser can enter 2 sets of controller gains K₁, K₂ and time constantsT_(c1), T_(c2) when configuring the controller. These are estimatedcontroller gains and process time constants relating to the dynamics ofthe sub-systems between the manipulated variables V₁(t) and V₂(t) to thecontrolled process variable y(t), respectively.

To compensate for the static gain changes caused by the split-rangesetting of R₁ and R₂, we can re-scale the controller gains based on thefollowing formulas: $\begin{matrix}{{K_{c1} = {K_{1}\frac{R_{1}}{100}}},} & (15) \\{{K_{c2} = {K_{2}\frac{100 - R_{2}}{100}}},} & (16)\end{matrix}$where K₁ and K₂ are configured controller gains for V₁(t) and V₂(t),respectively.

Depending on tile current value of u(t), the corresponding controllerparameters are used. Thus, the error signal E₁ of the neural network andthe controller signal u(t) are calculated based on the correspondingparameters of K_(c) and T_(c) as follows: $\begin{matrix}\begin{matrix}{{E_{1} = {\frac{K_{c1}}{T_{c1}}{N\left( {e(t)} \right)}}},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{1}} \right\rbrack}}\end{matrix} & \left( {17a} \right) \\\begin{matrix}{{{u(t)} = {{K_{c1}{e(t)}} + {100\left\lbrack {{a{\sum\limits_{j = 1}^{N}{{h_{j}(n)}{q_{j}(n)}}}} + b} \right\rbrack}}},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{1}} \right\rbrack}\end{matrix} & \left( {17b} \right) \\\begin{matrix}{{E_{1} = {\frac{K_{c2}}{T_{c2}}{N\left( {e(t)} \right)}}},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{2},100} \right\rbrack}}\end{matrix} & \left( {18a} \right) \\\begin{matrix}{{u(t)} = {{K_{c2}{e(t)}} + {{100\left\lbrack {{a{\sum\limits_{j = 1}^{N}{{h_{j}(n)}{q_{j}(n)}}}} + b} \right\rbrack}.}}} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{2},100} \right\rbrack}\end{matrix} & \left( {18b} \right)\end{matrix}$Then the controller outputs V₁(t) and V₂(t) can still be calculatedbased on Equations (13) and (14).

There are two special cases where we can make a more detailed design. Incases when R₁>R₂ and u(t) is inside the signal overlap area; and whenR₁<R₂ and u(t) is inside the deadband, we can simply let $\begin{matrix}\begin{matrix}{{K_{c} = \frac{K_{c1} + K_{c2}}{2}},} & {{for}\quad{u(t)}\quad{inside}\quad{deadband}\quad{or}\quad{overlap}\quad{area}}\end{matrix} & (19) \\\begin{matrix}\begin{matrix}{{T_{c} = \frac{T_{c1} + T_{c2}}{2}},} & {{for}\quad{u(t)}\quad{inside}\quad{deadband}\quad{or}\quad{overlap}\quad{area}}\end{matrix}\end{matrix} & (20)\end{matrix}$and then calculate E₁ and u(t) based on the averaged K_(c) and T_(c) ofEquations 19 and 20.

Since model-free adaptive (MFA) controllers are adaptive, the detaileddesigns described in Equations (15), (16), (19), and (20) may not benecessary. However, they are useful for the control systems withnon-adaptive controllers like PID controllers.

FIG. 4 illustrates an alternative design of the reverse split-rangesetter, where V₁(t) starts from 0 instead of 100 and V₂(t) ends at 0instead of 100. It splits the controller signal u(t) into 2 or moreranges to manipulate 2 different actuators individually, simultaneously,or neither by moving and setting the knobs R₁ and R₅₂, respectively. Thecontroller outputs V₁(t) and V₂(t) are calculated based on the followingformulas that can be implemented in the split-range setter mechanism 44:$\begin{matrix}\begin{matrix}{{{V_{1}(t)} = {{100\frac{{u(t)} - R_{1}}{R_{1}}} + 100}},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{1}} \right\rbrack}\end{matrix} & \left( {21a} \right) \\\begin{matrix}\begin{matrix}{{{V_{1}(t)} = 100},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left( {R_{1},100} \right\rbrack}}\end{matrix}\end{matrix} & \left( {21b} \right)\end{matrix}$where 0<R₁≦100, which defines the split range of u(t) for controlleroutput V₁(t); and $\begin{matrix}\begin{matrix}{{{V_{2}(t)} = {{{- 100}\frac{{u(t)} - R_{2}}{100 - R_{2}}} + 100}},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{2},100} \right\rbrack}\end{matrix} & \left( {22a} \right) \\\begin{matrix}\begin{matrix}{{{V_{2}(t)} = 100},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{2}} \right)}}\end{matrix}\end{matrix} & \left( {22b} \right)\end{matrix}$where 0≦R₂<100, which defines the split range of u(t) for controlleroutput V₂(t). In these equations, u(t) is calculated based on Equations(17) and (18), respectively.

The signals u(t), V₁(t), and V₂(t) all have a working range of 0% to100%. This reverse split-range setter design is useful for situationswhere valves are wide open at 100% during their off position.

FIG. 5 illustrates a sequential split-range setter that converts thecontroller signal u(t) into 2 or more ranges to manipulate 2 differentactuators individually, simultaneously, or neither by moving and settingthe knobs S₁ and S₂ 54, respectively.

The controller outputs V₁(t) and V₂(t) are calculated based on thefollowing formulas as implemented in the split-range setter mechanism44: $\begin{matrix}\begin{matrix}{{{V_{1}(t)} = {{100\frac{{u(t)} - S_{1}}{S_{1}}} + 100}},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,S_{1}} \right\rbrack}\end{matrix} & \left( {23a} \right) \\\begin{matrix}\begin{matrix}{{{V_{1}(t)} = 100},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left( {S_{1},100} \right\rbrack}}\end{matrix}\end{matrix} & \left( {23b} \right)\end{matrix}$where 0<S₁≦100. which defines the split range of u(t) for controlleroutput V₁(t); and $\begin{matrix}\begin{matrix}{{{V_{2}(t)} = {{{- 100}\frac{{u(t)} - 100}{S_{2} - 100}} + 100}},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {S_{2},100} \right\rbrack}\end{matrix} & \left( {24a} \right) \\\begin{matrix}\begin{matrix}{{{V_{2}(t)} = 0},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,S_{2}} \right)}}\end{matrix}\end{matrix} & \left( {24b} \right)\end{matrix}$where 0≦S₁<100, which defines the split range of u(t) for controlleroutput V₂(t). The signals u(t), V₁(t), and V₂(t) all have a workingrange of 0% to 100%. In this design, the control valves are shut at 0%during their off position.

As illustrated in FIG. 5, we can move and set the S₁ and S₂ knobs freelywithin its (0, 100) range to produce controller outputs V₁(t), andV₂(t), where there may be a deadband, or an overlap, or no gaps inbetween. These 3 types of settings are all useful depending on theactuators and actual applications.

FIG. 6 illustrates an alternative design of the sequential split-rangesetter, where V₁(t) and V₂(t) start from 100 instead of 0. It convertsthe controller signal u(t) into 2 or more ranges to manipulate 2different actuators individually, simultaneously, or neither by movingand setting the knobs S₁ and S₂ 56, respectively. The controller outputsV₁(t) and V₂(t) are calculated based on the following formulas that canbe implemented in the split-range setter mechanism 44: $\begin{matrix}\begin{matrix}{{{V_{1}(t)} = {{{- 100}\frac{u(t)}{S_{1}}} + 100}},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,S_{1}} \right\rbrack}\end{matrix} & \left( {25a} \right) \\\begin{matrix}\begin{matrix}{{{V_{1}(t)} = 0},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left( {S_{1},100} \right\rbrack}}\end{matrix}\end{matrix} & \left( {25b} \right)\end{matrix}$where 0<S₁≦100, which defines the split range of u(t) for controlleroutput V₁(t). $\begin{matrix}\begin{matrix}{{{V_{2}(t)} = {{{- 100}\frac{{u(t)} - S_{2}}{100 - S_{2}}} + 100}},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {S_{2},100} \right\rbrack}\end{matrix} & \left( {26a} \right) \\\begin{matrix}\begin{matrix}{{{V_{2}(t)} = 100},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,S_{2}} \right)}}\end{matrix}\end{matrix} & \left( {26\quad b} \right)\end{matrix}$where 0≦S₂<100, which defines the split range of u(t) for controlleroutput V₂(t).

In these equations, u(t) is calculated based on Equations (17) and (18),respectively. This sequential split-range setter design is useful forsituations where valves are wide open at 100% during their off position.

The signals u(t), V₁(t), and V₂(t) all have a working range of 0% to100%. We can easily rescale each of the output signals V₁(t) and V₂(t)from its 0% to 100% range to an engiiieerinio value range by using alinear function. In addition, control limits and constraints can beapplied to these signals for safety or other reasons to limit thecontrol actions.

1-Input-3-Output Model-Free Adaptive Controller

FIG. 7 illustrates a 1-input-3-output (1×3) MFA controller that controlsa 3-input-1-output (3×1) system. The control system consists of a1-input-3-output (1×3) MFA controller 60, a 3-input-1-output (3×1)system 62, actuators A₁ through A₃ 58, and signal adders, 64, 66. Thesignals shown in FIG. 7 are as follows:

-   -   r(t)—Setpoint.    -   y(t)—Measured Variable or the Process Variable, y(t)=x(t)+d(t).    -   x(t)—System Output.    -   V₁(t)—Controller Output 1 to manipulate Actuator A₁.    -   V₂(t)—Controller Output 2 to manipulate Actuator A₂.    -   V₃(t)—Controller Output 3 to manipulate Actuator A₃.    -   d(t)—Disturbance, the disturbance caused by noise or load        changes.    -   e(t)—Error between the Setpoint and Measured Variable,        e(t)=r(t)−y(t).

The control objective is for the controller to produce outputs V₁(t),V₂(t) and V₃(t) to manipulate actuators A₁, A₂ and A₃ so that themeasured variable y(t) tracks the given trajectory of its setpoint r(t)under variations of setpoint, disturbance, and process dynamics.

FIG. 8 illustrates the architecture of a 1-input-3-output model-freeadaptive (MFA) controller. The elements 18 through 40 are the same asdescribed for the 1-Input-2-Output MFA controller. The controller signalu(t) goes into a split-range setter R(·) 74 to produce the controlleroutputs V₁(t), V₂(t), and V₃(t).

The information inside the split-range setter 74 is routed throughsignal lines 76 and 78 to elements L_(x)(·) 70 and K_(cx)(·) 72,respectively. Based on this design, the user can enter 3 sets ofcontroller gains K_(c1), K_(c2), K_(c3) and time constants T_(c1),T_(c2), T_(c3) when configuring the controller. These are estimatedcontroller gains and process time constants relating to the dynamics ofthe sub-systems between the manipulated variables V₁(t), V₂(t) and V₃(t)to the controlled process variable y(t), respectively.

FIG. 9 illustrates a reverse split-range setter that splits thecontroller signal u(t) into 3 or more ranges to manipulate 3 differentactuators individually, simultaneously, or not at all by moving andsetting the knobs R₁, R₂, R₃ and R₄ 80, respectively. Using the similartechnique. we can easily expand the 1×2 case to the 1×3 case. Thecontroller outputs V₁(t), V₂(t) and V₃(t) are calculated based on thefollowing formulas: $\begin{matrix}\begin{matrix}{{E_{1} = {\frac{K_{c1}}{T_{c1}}{N\left( {e(t)} \right)}}},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{1}} \right\rbrack}}\end{matrix} & \left( {27a} \right) \\\begin{matrix}{{{u(t)} = {{K_{c1}{e(t)}} + {100\left\lbrack {{a{\sum\limits_{j = 1}^{N}{{h_{j}(n)}{q_{j}(n)}}}} + b} \right\rbrack}}},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{1}} \right\rbrack}\end{matrix} & \left( {27b} \right) \\\begin{matrix}{{{V_{1}(t)} = {{{- 100}\frac{u(t)}{R_{1}}} + 100}},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{1}} \right\rbrack}}\end{matrix} & \left( {27c} \right) \\\begin{matrix}{{{V_{1}(t)} = 0},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left( {R_{1},100} \right\rbrack}}\end{matrix} & \left( {27d} \right)\end{matrix}$where 0<R₁≦100, which defines the split range of u(t) for controlleroutput V₁(t); $\begin{matrix}\begin{matrix}{{E_{1} = {\frac{K_{c2}}{T_{c2}}{N\left( {e(t)} \right)}}},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{2},R_{3}} \right\rbrack}}\end{matrix} & \left( {28a} \right) \\\begin{matrix}{{{u(t)} = {{K_{c2}{e(t)}} + {100\left\lbrack {{a{\sum\limits_{j = 1}^{N}{{h_{j}(n)}{q_{j}(n)}}}} + b} \right\rbrack}}},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{2},R_{3}} \right\rbrack}\end{matrix} & \left( {28b} \right) \\\begin{matrix}{{{V_{2}(t)} = {{{- 100}\frac{{u(t)} - R_{3}}{R_{2} - R_{3}}} + 100}},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{2},R_{3}} \right\rbrack}}\end{matrix} & \left( {28c} \right) \\\begin{matrix}{{{V_{2}(t)} = 0},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{2}} \right)}}\end{matrix} & \left( {28d} \right) \\\begin{matrix}{{{V_{2}(t)} = 100},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left( {R_{3},100} \right\rbrack}}\end{matrix} & \left( {28e} \right)\end{matrix}$where 0≦R₂<100, 0<R₃≦100, and R₂<R₃, which define the split range ofu(t) for controller output V₂(t); and $\begin{matrix}\begin{matrix}{{E_{1} = {\frac{K_{c3}}{T_{c3}}{N\left( {e(t)} \right)}}},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{4},100} \right\rbrack}}\end{matrix} & \left( {29a} \right) \\\begin{matrix}{{{u(t)} = {{K_{c3}{e(t)}} + {100\left\lbrack {{a{\sum\limits_{j = 1}^{N}{{h_{j}(n)}{q_{j}(n)}}}} + b} \right\rbrack}}},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{4},100} \right\rbrack}\end{matrix} & \left( {29b} \right) \\\begin{matrix}{{{V_{3}(t)} = {{{- 100}\frac{{u(t)} - R_{4}}{100 - R_{4}}} + 100}},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{4},100} \right\rbrack}}\end{matrix} & \left( {29c} \right) \\\begin{matrix}{{{V_{3}(t)} = 100},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{4}} \right)}}\end{matrix} & \left( {29d} \right)\end{matrix}$where 0≦R₄<100, which defines the split range of u(t) for controlleroutput V₃(t).

The signals u(t), V₁(t), V₂(t), and V₃(t) all have a working range of 0%to 100%. We can easily rescale each of the output signals V₁(t), V₂(t),and V₃(t) fromt its 0% to 100% range to an engineering value range byusing a linear function. In addition, control limits and constraints canbe applied to these signals for safety or other reasons to limit thecontrol actions.

To simplify, the treatment on the controller parameters as described inEquations (15) and (16) for resealed controller gain, and in Equations(19) and (20) for averaged controller gain and time constant are notpresented here but can be implemented similarly.

FIG. 10 illustrates an alternative design for the reverse split-rangesetter that splits the controller signal u(t) into 3 or more ranges tomanipulate 3 different actuators individually, simultaneously, or not atall by moving and setting the knobs R₁, R₂, R₃ and R₄ 82, respectively.Using the similar technique, we can easily expand the 1×2 case to the1×3 case. The controller outputs V1(t), V₂(t) and V₃(t) are calculatedbased on the following formulas: $\begin{matrix}\begin{matrix}{{{V_{1}(t)} = {{100\frac{{u(t)} - R_{1}}{R_{1}}} + 100}},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{1}} \right\rbrack}}\end{matrix} & \left( {30a} \right) \\\begin{matrix}{{{V_{1}(t)} = 100},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left( {R_{1},100} \right\rbrack}}\end{matrix} & \left( {30b} \right)\end{matrix}$where 0<R₁≦100, which defines the split range of u(t) for controlleroutput V₁(t); $\begin{matrix}\begin{matrix}{{{V_{2}(t)} = {{{- 100}\frac{{u(t)} - R_{2}}{R_{3} - R_{2}}} + 100}},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{2},R_{3}} \right\rbrack}}\end{matrix} & \left( {31a} \right) \\\begin{matrix}{{{V_{2}(t)} = 100},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{2}} \right)}}\end{matrix} & \left( {31b} \right) \\\begin{matrix}{{{V_{2}(t)} = 0},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left( {R_{3},100} \right\rbrack}}\end{matrix} & \left( {31c} \right)\end{matrix}$where 0≦R₂<100, 0<R₃≦100, and R₂<R₃, which define the split range ofu(t) for controller output V₂(t); and $\begin{matrix}\begin{matrix}{{{V_{3}(t)} = {{{- 100}\frac{{u(t)} - 100}{R_{4} - 100}} + 100}},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{4,}100} \right\rbrack}}\end{matrix} & \left( {32a} \right) \\\begin{matrix}{{{V_{3}(t)} = 0},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{4}} \right)}}\end{matrix} & \left( {32b} \right)\end{matrix}$where 0≦R₄<100 which defines the split range of u(t) for controlleroutput V₃(t). In these equations, u(t) is calculated based on theEquations (27a), (27b), (28a), (28b), (29a) and (29b), respectively.

The signals u(t), V₁(t), V₂(t), and V₃(t) all have a working range of 0%to 100%. We can easily rescale each of the output signals V₁(t), V₂(t),and V₃(t) from its 0% to 100% range to an engineering value range byusing, a linear function. In addition, control limits and constraintscan be applied to these signals for safety or other reasons to limit thecontrol actions. This reverse split-range setter design is useful forsituations where valves are wide open at 100% during their off position.

FIG. 11 illustrates a sequential split-range setter that converts thecontroller signal u(t) into 3 or more ranges to manipulate 3 differentactuators individually, simultaneously, or neither by moving and settingthe knobs S₁ to S_(4 84,) respectively.

The controller outputs V₁(t), V₂(t), and V₃(t) are calculated based onthe following formulas as implemented in the split-range settermechanism 74: $\begin{matrix}\begin{matrix}{{{V_{1}(t)} = {{100\frac{{u(t)} - S_{1}}{S_{1}}} + 100}},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,S_{1}} \right\rbrack}}\end{matrix} & \left( {33a} \right) \\\begin{matrix}{{{V_{1}(t)} = 100},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left( {S_{1},100} \right\rbrack}}\end{matrix} & \left( {33b} \right)\end{matrix}$where 0<S₁≦100, which defines the split range of u(t) for controlleroutput V₁(t); $\begin{matrix}\begin{matrix}{{{V_{2}(t)} = {{{- 100}\frac{{u(t)} - S_{3}}{S_{2} - S_{3}}} + 100}},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {S_{2},S_{3}} \right\rbrack}}\end{matrix} & \left( {34a} \right) \\\begin{matrix}{{{V_{2}(t)} = 0},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,S_{2}} \right)}}\end{matrix} & \left( {34b} \right) \\\begin{matrix}{{{V_{2}(t)} = 100},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left( {S_{3},100} \right\rbrack}}\end{matrix} & \left( {34c} \right)\end{matrix}$where 0≦S₁ <100, 0<S ₃≦100, and S_(2<S) _(3,) which define the splitrange of u(t) for controller output V₂(t); and $\begin{matrix}\begin{matrix}{{{V_{3}(t)} = {{{- 100}\frac{{u(t)} - 100}{S_{4} - 100}} + 100}},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {S_{4,}100} \right\rbrack}}\end{matrix} & \left( {35a} \right) \\\begin{matrix}{{{V_{3}(t)} = 0},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,S_{4}} \right)}}\end{matrix} & \left( {35b} \right)\end{matrix}$where 0≦S₄<100, which defines the split range of u(t) for controlleroutput V₃(t). The signals u(t), V₁(t), V₂(t), and V₃(t) all have aworking rang(e of 0% to 100%. In this design, the control valves areshut at 0% during their off position.

FIG. 12 illustrates an alternative design of the sequential split-rangesetter that converts the controller signal u(t) into 3 or more ranges tomanipulate 3 different actuators individually, simultaneously, orneither by moving and setting the knobs S₁ to S₄ 86, respectively.

The controller outputs V₁(t), V₂(t), and V₃(t) are calculated based onthe following formulas as implemented in the split-range settermechanism 74: $\begin{matrix}\begin{matrix}{{{V_{1}(t)} = {{{- 100}\frac{u(t)}{S_{1}}} + 100}},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,S_{1}} \right\rbrack}}\end{matrix} & \left( {36a} \right) \\\begin{matrix}{{{V_{1}(t)} = 0},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left( {S_{1},100} \right\rbrack}}\end{matrix} & \left( {36b} \right)\end{matrix}$where 0<S₁≦100, which defines the split range of u(t) for controlleroutput V₁(t). $\begin{matrix}\begin{matrix}{{{V_{2}(t)} = {{{- 100}\frac{{u(t)} - S_{2}}{S_{3} - S_{2}}} + 100}},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {S_{2},S_{3}} \right\rbrack}}\end{matrix} & \left( {37a} \right) \\\begin{matrix}{{{V_{2}(t)} = 100},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,S_{2}} \right)}}\end{matrix} & \left( {37b} \right) \\\begin{matrix}{{{V_{2}(t)} = 0},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left( {S_{3},100} \right\rbrack}}\end{matrix} & \left( {37c} \right)\end{matrix}$where 0≦S₂ <100, 0<S ₃≦100, and S₂<S₃, which define the split range ofu(t) for controller output V₂(t); and $\begin{matrix}\begin{matrix}{{{V_{3}(t)} = {{{- 100}\frac{{u(t)} - S_{4}}{100 - S_{4}}} + 100}},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {S_{4,}100} \right\rbrack}}\end{matrix} & \left( {38a} \right) \\\begin{matrix}{{{V_{3}(t)} = 100},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,S_{4}} \right)}}\end{matrix} & \left( {38b} \right)\end{matrix}$where 0≦S₄<100, which defines the split range of u(t) for controlleroutput V₃(t). In these equations, u(t) is calculated based on theEquations (27a), (27b), (28a), (28b), (29a) and (29b), respectively.

The signals u(t), V₁(t), V₂(t), and V₃(t) all have a working range of 0%to 100%. We can easily rescale each of the output signals V₁(t), V₂(t),and V₃(t) from its 0% to 100% range to an eng(ineering value range byusing a linear function. In addition, control limits and constraints canbe applied to these signals for safety or other reasons to limit thecontrol actions. This sequential split-range setter design is useful forsituations where valves are wide open at 100% during their olf position.

C. Single-Input-Multi-Output Model-Free Adaptive Controller

FIG. 13 illustrates a 1-input-M-output (1×M) MFA controller thatcontrols an M-input-1-output (M×1) system. The control system consistsof a 1-input-M-output (1×M) MFA controller 90, an M-input-1-output (M×1)system 92, actuators A₁ through A_(M) 88, and signal adders, 94, 96. Thesignals shown in FIG. 13 are as follows:

-   -   r(t)—Setpoint.    -   y(t)—Measured Variable or the Process Variable, y(t)=x(t)+d(t).    -   x(t)—System Output.    -   V₁(t)—Controller Output 1 to manipulate Actuator A₁.    -   V₂(t)—Controller Output 2 to manipulate Actuator A₂.    -   V_(M)(t)—Controller Output M to manipulate Actuator A_(M).    -   d(t)—Disturbance, the disturbance caused by noise or load        changes.    -   e(t)—Error between the Setpoint and Measured Variable,        e(t)=r(t)−y(t).

The control objective is for the controller to produce outputs V₁(t),V₂(t), . . . ,V_(M)(t) to manipulate actuators A₁, A₂, . . . , A_(M) sothat the measured variable y(t) tracks the given trajectory of itssetpoint r(t) under variations of setpoint, disturbance, and processdynamics.

FIG. 14 illustrates the architecture of a 1-input-M-output MFAcontroller. The elements 18 through 40 are the same as described for the1-Input-2-Output MFA controller. The controller signal u(t) goes into asplit-range setter R(·) 104 to produce the controller outputs V₁(t),V₂(t), . . . , V₁M(t). The information inside the split-range setterR(·) is routed through signal lines 106 and 108 to elements L_(x)(·) 100and K_(cx)(·) 102, respectively. Based on this design, the user canenter N4 sets of controller gains. K_(c1), K_(c2), . . . , K_(cM) andtime constants T_(c1), T_(c2), T_(cM) when configuring the controller.These are estimated controller gains and process time constants relatingto the dynamics of the sub-systems between the manipulated variablesV₁(t), V₂(t), . . . , V_(M)(t) to the controlled process variable y(t),respectively.

Using the similar technique, we can expand the 1×3 case to the 1×M case.The reverse split-range setter similar to what is illustrated in FIG. 9is used to split the controller signal u(t); and the controller outputsV₁(t) and V₂(t) are calculated based on the following formulas:$\begin{matrix}\begin{matrix}{{E_{1} = {\frac{K_{c1}}{T_{c1}}{N\left( {e(t)} \right)}}},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{1}} \right\rbrack}}\end{matrix} & \left( {39a} \right) \\\begin{matrix}{{{u(t)} = {{K_{c1}{e(t)}} + {100\left\lbrack {{a{\sum\limits_{j = 1}^{N}{{h_{j}(n)}{q_{j}(n)}}}} + b} \right\rbrack}}},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{1}} \right\rbrack}\end{matrix} & \left( {39b} \right) \\\begin{matrix}{{{V_{1}(t)} = {{{- 100}\frac{u(t)}{R_{1}}} + 100}},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{1}} \right\rbrack}}\end{matrix} & \left( {39c} \right) \\\begin{matrix}{{{V_{1}(t)} = 0},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left( {R_{1},100} \right\rbrack}}\end{matrix} & \left( {39d} \right)\end{matrix}$here 0<R₁≦100, which defines the split range of u(t) for controlleroutput V₁(t); $\begin{matrix}{{E_{1} = {\frac{K_{c2}}{T_{c2}}{N\left( {e(t)} \right)}}},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{2},R_{3}} \right\rbrack} & \left( {40a} \right) \\{{{u(t)} = {{K_{c2}{e(t)}} + {100\left\lbrack {{a{\sum\limits_{i = 1}^{N}\quad{{h_{j}(n)}{q_{j}(n)}}}} + b} \right\rbrack}}},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{2},R_{3}} \right\rbrack} & \left( {40b} \right) \\{{{V_{2}(t)} = {{{- 100}\frac{{u(t)} - R_{3}}{R_{2} - R_{3}}} + 100}},} & {{{{for}\quad{all}\quad{u(t)}}{\quad\quad} \in \left\lbrack {R_{2},R_{3}} \right\rbrack}\quad} & \left( {40c} \right) \\{{{V_{2}(t)} = 0},} & {{{for}\quad{all}{\quad\quad}{u(t)}} \in \left\lbrack {0,R_{2}} \right)} & \left( {40d} \right) \\{{{V_{2}(t)} = 100},} & {{{for}\quad{all}{\quad\quad}{u(t)}} \in \left\lbrack {R_{3},100} \right\rbrack} & \left( {40e} \right)\end{matrix}$where 0≦R₂ <100, 0<R ₃≦100, and R₂<R₃ which define the split range ofu(t) for controller output V₂(t); . . . ;

Without losing generality, the last control signal V_(M)(t) can becalculated based on the following, formulas: $\begin{matrix}{E_{1} = {\frac{K_{cM}}{T_{cM}}{{N\left( {e(t)} \right)}.}}} & {{{for}\quad{all}{\quad\quad}{u(t)}} \in \left\lbrack {R_{{2M} - 2},100} \right\rbrack} & \left( {41a} \right) \\{{{u(t)} = {{K_{cM}{e(t)}} + {100\left\lbrack {{a{\sum\limits_{j = 1}^{N}\quad{{h_{j}(n)}{q_{j}(n)}}}} + b} \right\rbrack}}},{{{where}\quad M} = 3},4,5,{{6\quad\ldots}\quad;}} & {{{for}\quad{all}{\quad\quad}{u(t)}} \in \left\lbrack {R_{{2M} - 2},100} \right\rbrack} & \left( {41b} \right) \\{{{V_{M}(t)} = {{{- 100}\frac{{u(t)} - R_{{2M} - 2}}{100 - R_{{2M} - 2}}} + 100}},} & {{{for}\quad{all}{\quad\quad}{u(t)}} \in \left\lbrack {R_{{2M} - 2},100} \right\rbrack} & \left( {41c} \right) \\{{{V_{M}(t)} = 100},} & {{{for}\quad{all}{\quad\quad}{u(t)}} \in \left\lbrack {0,R_{{2M} - 2}} \right)} & \left( {41d} \right)\end{matrix}$where M=3, 5, 7, . . . ; and 0≦R _(2M-2)<100 which defines the Splitrange of I1(t) for controller output V_(M)(t); and $\begin{matrix}{{{V_{M}(t)} = {{{- 100}\frac{{u(t)} - 100}{R_{{2M} - 2} - 100}} + 100}},} & {{{for}\quad{all}{\quad\quad}{u(t)}} \in \left\lbrack {R_{{2M} - 2},100} \right\rbrack} & \left( {41e} \right) \\{{{V_{M}(t)} = 0},} & {{{for}\quad{all}{\quad\quad}{u(t)}} \in \left\lbrack {0,R_{{2M} - 2}} \right)} & \left( {41f} \right)\end{matrix}$where M=4, 6, 8, . . . ; and 0≦R _(2M-2)<100which defines the splitrange of u(t) for controller Output V_(M)(t).

The signals u(t), V₁(t), V₂(t), . . . , V_(M)(t) all have a workingrange of 0% to 100%. We can easily rescale each of the output signalsV₁(t), V₂(t),.and V₃(t) from its 0% to 100% range to an engineerinigvalue range by using a linear function. In addition, control limits andconstraints can be applied to these signals for safety or other reasonsto limit the control actions. To simplify, the treatment on thecontroller parameters as described in Equations (15), (16), (19), and(20) are not presented here but can be implemented similarly. Thealternative design for the reverse split-range setter similar to what isillustrated in FIG. 10 can also be derived.

A sequential split-range setter similar to what is illustrated in FIG.11 is used; and the controller outputs V₁(t) and V₂(t) are calculatedbased on the following formulas: $\begin{matrix}{{E_{1} = {\frac{K_{c1}}{T_{c1}}{N\left( {e(t)} \right)}}},} & {{{for}\quad{all}{\quad\quad}{u(t)}} \in \left\lbrack {0,S_{1}} \right\rbrack} & \left( {42a} \right) \\{{{u(t)} = {{K_{c1}{e(t)}} + {100\left\lbrack {{a{\sum\limits_{j = 1}^{N}\quad{{h_{j}(n)}{q_{j}(n)}}}} + b} \right\rbrack}}},} & {{{for}\quad{all}{\quad\quad}{u(t)}} \in \left\lbrack {0,S_{1}} \right\rbrack} & \left( {42b} \right) \\{{{V_{1}(t)} = {{100\frac{{u(t)} - S_{1}}{S_{1}}} + 100}},} & {{{for}\quad{all}{\quad\quad}{u(t)}} \in \left\lbrack {0,S_{1}} \right\rbrack} & \left( {42c} \right) \\{{{V_{1}(t)} = 100},} & {{{for}\quad{all}{\quad\quad}{u(t)}} \in \left( {S_{1},100} \right\rbrack} & \left( {42d} \right)\end{matrix}$where 0<S₁≦100, which defines the split range of u(t) for controlleroutput V₁(t); $\begin{matrix}{{E_{1} = {\frac{K_{c2}}{T_{c2}}{N\left( {e(t)} \right)}}},} & {{{for}\quad{all}{\quad\quad}{u(t)}} \in \left\lbrack {S_{2},S_{3}} \right\rbrack} & \left( {43a} \right) \\{{{u(t)} = {{K_{c2}{e(t)}} + {100\left\lbrack {{a{\sum\limits_{j = 1}^{N}\quad{{h_{j}(n)}{q_{j}(n)}}}} + b} \right\rbrack}}},} & {{{for}\quad{all}{\quad\quad}{u(t)}} \in \left\lbrack {S_{2},S_{3}} \right\rbrack} & \left( {43b} \right) \\{{{V_{2}(t)} = {{{- 100}\frac{{u(t)} - S_{3}}{S_{2} - S_{3}}} + 100}},} & {{{for}\quad{all}{\quad\quad}{u(t)}} \in \left\lbrack {S_{2},S_{3}} \right\rbrack} & \left( {43c} \right) \\{{{V_{2}(t)} = 0},} & {{{for}\quad{all}{\quad\quad}{u(t)}} \in \left\lbrack {0,S_{2}} \right)} & \left( {43d} \right) \\{{{V_{2}(t)} = 100},} & {{{for}\quad{all}{\quad\quad}{u(t)}} \in \left\lbrack {S_{3},100} \right\rbrack} & \left( {43e} \right)\end{matrix}$where 0≦S₂ <100, 0<S ₃≦100, and S₂<S₃ which define the split range ofu(t) for controller output V₂(t); . . . ;

Without losing generality, the last control signal V_(M)(t) can becalculated based on the following formulas: $\begin{matrix}{{E_{1} = {\frac{K_{cM}}{T_{cM}}{N\left( {e(t)} \right)}}},} & {{{for}\quad{all}{\quad\quad}{u(t)}} \in \left\lbrack {S_{{2M} - 2},100} \right\rbrack} & \left( {44a} \right) \\{{{u(t)} = {{K_{cM}{e(t)}} + {100\left\lbrack {{a{\sum\limits_{j = 1}^{N}\quad{{h_{j}(n)}{q_{j}(n)}}}} + b} \right\rbrack}}},} & {{{for}\quad{all}{\quad\quad}{u(t)}} \in \left\lbrack {S_{{2M} - 2},100} \right\rbrack} & \left( {44b} \right) \\{{{V_{M}(t)} = {{{- 100}\frac{{u(t)} - 100}{S_{{2M} - 2} - 100}} + 100}},} & {{{for}\quad{all}{\quad\quad}{u(t)}} \in \left\lbrack {S_{{2M} - 2},100} \right\rbrack} & \left( {44c} \right) \\{{{V_{M}(t)} = 0},} & {{{for}\quad{all}{\quad\quad}{u(t)}} \in \left\lbrack {0,S_{{2M} - 2}} \right)} & \left( {44d} \right)\end{matrix}$where M=3, 4, 5, 6, . . . ; and 0≦S_(2M-2)<100 which defines the splitrange of u(t) for controller output V_(M)(t).

The signals u(t), V₁(t), V₂(t), . . . , V_(M)(t) all have a workingrange of 0% to 100%. Controller parameters K_(c1), K_(c2), . . . ,K_(cM), T_(c1), T_(c2), . . . , T_(cM) are entered by the user duringcontroller configuration. These are estimated controller gains andprocess time constants relating to the dynamics of the sub-systemsbetween the manipulated variables V₁(t), V₂(t), . . . , V_(M)(t) to thecontrolled process variable y(t), respectively. To simplify, thetreatment on the controller parameters as described in Equations (15),(16), (19), and (20) are not presented here but can be implementedsimilarly. The alternative design for the sequential split-range settersimilar to what is illustrated in FIG. 12 can also be derived.

D. 1-Input-2-Output PID Controller

FIG. 15 illustrates a 1-input-2-output (1×2)Proportional-Integral-Derivative controller that controls a2-input-1-output (2×1) system. The control system consists of a1-input-2-output (1×2) PID controller 110, a 2-input-1-output (2×1)system 112, actuators A₁ and A₂ 118, and signal adders, 114, 116. Thesignals shown in FIG. 15 are as follows:

-   -   r(t)—Setpoint.    -   y(t)—Measured Variable or the Process Variable, y(t)=x(t)+d(t).    -   x(t)—System Output.    -   V₁(t)—Controller Output 1 to manipulate Actuator A₁.    -   V₂(t)—Controller Output 2 to manipulate Actuator A₂.    -   d(t)—Disturbance, the disturbance caused by noise or load        changes.    -   e(t)—Error between the Setpoint and Measured Variable,        e(t)=r(t)−y(t).

The control objective is for the controller to produce outputs V₁(t) andV₂(t) to manipulate actuators A₁ and A₂ so that the measured variabley(t) tracks the given trajectory of its setpoint r(t).

The standard PID algorithm has the following form: $\begin{matrix}{{{u(t)} = {K_{p}\left\{ {{e(t)} + {\frac{1}{T_{i}}{\int{{e(t)}{\mathbb{d}t}}}} + {T_{d}\frac{\mathbb{d}{e(t)}}{\mathbb{d}t}}} \right\}}},} & (45)\end{matrix}$where K_(p) is the Proportional Gain, T_(i) is the Integral Time insecond/repeat, and T_(d) is the Derivative Time in repeat/second.

The reverse split-range setter described in FIG. 3 is readily useful toconvert a SISO PID controller into a 1-input-2-output PID controller.The reverse split-range setter splits the controller signal u(t) into 2or more ranges to manipulate 2 different actuators individually,simultaneously, or neither by moving and setting the knobs R₁ and R₂ 50,respectively.

Based on the similar design procedure, we can allow the user to enter 2sets of PID parameters K_(p1), K_(p2), T_(i1), T_(i2), T_(d1), T_(d2)for calculating controller outputs V₁(t) and V₂(t).

To compensate for the static gain changes caused by the split-rangesetting of R₁ and R₂, we can re-scale the controller gains based on thefollowing formulas: $\begin{matrix}{{K_{p1} = {K_{1}\frac{R_{1}}{100}}},} & (46) \\{{K_{p2} = {K_{2}\frac{100 - R_{2}}{100}}},} & (47)\end{matrix}$where K₁ and K₂ are configured controller gains of PID for V₁(t) andV₂(t), respectively.

The 1×2 PID controller outputs V₁(t) and V₂(t) are calculated based onthe following formulas: $\begin{matrix}{{{u(t)} = {K_{p1}\left\{ {{e(t)} + {\frac{1}{T_{i1}}{\int{{e(t)}{\mathbb{d}t}}}} + {T_{d1}\frac{\mathbb{d}{e(t)}}{\mathbb{d}t}}} \right\}}},} & {{{for}\quad{all}{\quad\quad}{u(t)}} \in \left\lbrack {0,R_{1}} \right\rbrack} & \left( {48a} \right) \\{{{V_{1}(t)} = {{{- 100}\frac{u(t)}{R_{1}}} + 100}},} & {{{for}\quad{all}{\quad\quad}{u(t)}} \in \left\lbrack {0,R_{1}} \right\rbrack} & \left( {48b} \right) \\{{{V_{1}(t)} = 0},} & {{{for}\quad{all}{\quad\quad}{u(t)}} \in \left( {R_{1},100} \right\rbrack} & \left( {48c} \right)\end{matrix}$where 0<R₁≦100, which defines the split range of u(t) for controlleroutput V₁(t); and $\begin{matrix}{{{u(t)} = {K_{p2}\left\{ {{e(t)} + {\frac{1}{T_{i2}}{\int{{e(t)}{\mathbb{d}t}}}} + {T_{d2}\frac{\mathbb{d}{e(t)}}{\mathbb{d}t}}} \right\}}},} & {{{for}\quad{all}{\quad\quad}{u(t)}} \in \left\lbrack {R_{2},100} \right\rbrack} & \text{(49a)} \\{{{V_{2}(t)} = {{{- 100}\frac{{u(t)} - 100}{R_{2} - 100}} + 100}},} & {{{for}\quad{all}{\quad\quad}{u(t)}} \in \left\lbrack {R_{2},100} \right\rbrack} & \text{(49b)} \\{{{V_{2}(t)} = 0},} & {{{for}\quad{all}{\quad\quad}{u(t)}} \in {\left\lbrack {0,R_{2}} \right).}} & \text{(49c)}\end{matrix}$where 0≦R₂<100, which defines the split range of u(t) for controlleroutput V₂(t). The signals u(t), V₁(t), and V₂(t) all have a workingrange of 0% to 100%. In this design, the control valves are shut at 0%during their off position. We can move and set the R₁ and R₂ knobsfreely within its (0, 100) range to produce controller outputs V₁(t),and V₂(t), where there may be a deadband, or an overlap, or no gaps inbetween. These 3 types of settings are all useful depending on theactuators and actual applications.

For the two special cases, when R₁>R₂ and u(t) is inside the signaloverlap area; and when R₁<R₂ and u(t) is inside the deadband, we cansimply let ${K_{p} = \frac{K_{p1} + K_{p2}}{2}},$for u(t) inside deadbaid or overlap area (50a) $\begin{matrix}\begin{matrix}{{T_{i} = \frac{T_{i1} + T_{2}}{2}},} & {{for}\quad{u(t)}\quad{inside}\quad{deadband}\quad{or}\quad{overlap}\quad{area}}\end{matrix} & \left( {50b} \right) \\\begin{matrix}{{T_{d} = \frac{T_{d1} + T_{d2}}{2}},} & {{for}\quad{u(t)}\quad{inside}\quad{deadband}\quad{or}\quad{overlap}\quad{area}}\end{matrix} & \left( {50c} \right)\end{matrix}$and then calculate u(t) based on Equation (45) using the averaged PIDparameters.

The alternative design of the reverse split-range setter illustrated inFIG. 4 can also be applied to the PID controller, where V₁(t) startsfrom 0 instead of 100 and V₂(t) ends at 0 instead of 100. It splits thecontroller signal u(t) into 2 or more ranges to manipulate 2 differentactuators individually, simultaneously, or neither by moving and settingthe knobs R₁ and R₂ 52, respectively. The controller outputs V₁(t) andV₂(t) are calculated based on the following formulas: $\begin{matrix}\begin{matrix}{{{u(t)} = {K_{p1}\left\{ {{e(t)} + {\frac{1}{T_{i1}}{\int{{e(t)}{\mathbb{d}t}}}} + {T_{d1}\frac{\mathbb{d}{e(t)}}{\mathbb{d}t}}} \right\}}},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{1}} \right\rbrack}\end{matrix} & \left( {51a} \right) \\\begin{matrix}{{{V_{1}(t)} = {{100\frac{{u(t)} - R_{1}}{R_{1}}} + 100}},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{1}} \right\rbrack}}\end{matrix} & \left( {51b} \right) \\\begin{matrix}{{{V_{1}(t)} = 100},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left( {R_{1},100} \right\rbrack}}\end{matrix} & \left( {52c} \right)\end{matrix}$where 0<R₁≦100, which defines the split range of u(t) for controlleroutput V₁(t); and $\begin{matrix}\begin{matrix}{{{u(t)} = {K_{p2}\left\{ {{e(t)} + {\frac{1}{T_{i2}}{\int{{e(t)}{\mathbb{d}t}}}} + {T_{d2}\frac{\mathbb{d}{e(t)}}{\mathbb{d}t}}} \right\}}},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{2},100} \right\rbrack}\end{matrix} & \left( {52a} \right) \\\begin{matrix}{{{V_{2}(t)} = {{{- 100}\frac{{u(t)} - R_{2}}{100 - R_{2}}} + 100}},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{2},100} \right\rbrack}}\end{matrix} & \left( {52b} \right) \\\begin{matrix}{{{V_{2}(t)} = 100},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{2}} \right)}}\end{matrix} & \left( {52c} \right)\end{matrix}$where 0≦R₁<100, which defines the split range of u(t) for controlleroutput V₂(t).

The signals u(t), V₁(t), and V₂(t) all have a working range of 0% to100%. This reverse split-ran;,e setter desion is useful lor situationswhere valves are wide open at 100% during their off position.

The sequential split-range setter as illustrated in FIG. 5 can beapplied to the PID case that converts the controller signal u(t) into 2or more ranges to manipulate 2 different actuators individually,simultaneously, or neither by moving and setting the knobs S₁ and S₂ 54,respectively.

The controller outputs V₁(t) and V₂(t) are calculated based on thefollowing formulas: $\begin{matrix}\begin{matrix}{{{u(t)} = {K_{p1}\left\{ {{e(t)} + {\frac{1}{T_{i1}}{\int{{e(t)}{\mathbb{d}t}}}} + {T_{d1}\frac{\mathbb{d}{e(t)}}{\mathbb{d}t}}} \right\}}},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,S_{1}} \right\rbrack}\end{matrix} & \left( {53a} \right) \\\begin{matrix}{{{V_{1}(t)} = {{100\frac{{u(t)} - S_{1}}{S_{1}}} + 100}},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,S_{1}} \right\rbrack}}\end{matrix} & \left( {53b} \right) \\\begin{matrix}{{{V_{1}(t)} = 100},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left( {S_{1},100} \right\rbrack}}\end{matrix} & \left( {53c} \right)\end{matrix}$where 0<S₁≦100, which defines the split range of u(t) for controlleroutput V₁(t); and $\begin{matrix}\begin{matrix}{{{u(t)} = {K_{p2}\left\{ {{e(t)} + {\frac{1}{T_{i2}}{\int{{e(t)}{\mathbb{d}t}}}} + {T_{d2}\frac{\mathbb{d}{e(t)}}{\mathbb{d}t}}} \right\}}},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {S_{2},100} \right\rbrack}\end{matrix} & \left( {54a} \right) \\\begin{matrix}{{{V_{2}(t)} = {{{- 100}\frac{{u(t)} - 100}{S_{2} - 100}} + 100}},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {S_{2},100} \right\rbrack}}\end{matrix} & \left( {54b} \right) \\\begin{matrix}{{{V_{2}(t)} = 0},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,S_{2}} \right)}}\end{matrix} & \left( {54c} \right)\end{matrix}$where 0≦S₂<100, which defines the split range of u(t) for controlleroutput V₂(t). The signals u(t), V₁(t), and V₂(t) all have a workingrange of 0% to 100%. In this design, the control valves are shut at 0%during their off position.

The alternative design of the sequential split-range setter asillustrated in FIG. 6 can also be applied to the PID case, where V₁(t)and V₂(t) start from 100 instead of 0. It converts the controller signalu(t) into 2 or more ranges to manipulate 2 different actuatorsindividually, simultaneously, or neither by moving and setting the knobsS₁ and S₂ 56, respectively. The controller outputs V₁(t) and V₂(t) arecalculated based on the following formulas: $\begin{matrix}\begin{matrix}{{{u(t)} = {K_{p1}\left\{ {{e(t)} + {\frac{1}{T_{i1}}{\int{{e(t)}{\mathbb{d}t}}}} + {T_{d1}\frac{\mathbb{d}{e(t)}}{\mathbb{d}t}}} \right\}}},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,S_{1}} \right\rbrack}\end{matrix} & \left( {55a} \right) \\\begin{matrix}{{{V_{1}(t)} = {{{- 100}\frac{u(t)}{S_{1}}} + 100}},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,S_{1}} \right\rbrack}}\end{matrix} & \left( {55b} \right) \\\begin{matrix}{{{V_{1}(t)} = 0},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left( {S_{1},100} \right\rbrack}}\end{matrix} & \left( {55c} \right)\end{matrix}$where 0<S₁≦100, which defines the split range of u(t) for controlleroutput V₁(t). $\begin{matrix}\begin{matrix}{{{u(t)} = {K_{p2}\left\{ {{e(t)} + {\frac{1}{T_{i2}}{\int{{e(t)}{\mathbb{d}t}}}} + {T_{d2}\frac{\mathbb{d}{e(t)}}{\mathbb{d}t}}} \right\}}},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {S_{2},100} \right\rbrack}\end{matrix} & \left( {56a} \right) \\\begin{matrix}{{{V_{2}(t)} = {{{- 100}\frac{{u(t)} - S_{2}}{100 - S_{2}}} + 100}},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {S_{2},100} \right\rbrack}}\end{matrix} & \left( {56b} \right) \\\begin{matrix}{{{V_{2}(t)} = 100},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,S_{2}} \right)}}\end{matrix} & \left( {56c} \right)\end{matrix}$where 0≦S₂<100, which defines the split range of u(t) for controlleroutput V₂(t).

This sequential split-range setter design is useful for situations wherevalves are wide open at 100% during their off position. The signalsu(t), V₁(t), and V₂(t) all have a working range of 0% to 100%. We caneasily rescale each of the output signals V₁(t) and V₂(t) from its 0% to100% range to an engineering value range by using a linear function. Inaddition, control limits and constraints can be applied to these signalsfor safety or other reasons to limit the control actions.

Since PID is not an adaptive controller, it may not be able to handlethe large dynamic changes within the sub-systems even though the dynamicchanges between the sub-systems may be handled by using different setsof PID tuning parameters. Model-Free Adaptive (MFA) controllers willoutperform the PIDs because of their adaptive capability.

E. Single-Input-Multi-Output PID Controller

FIG. 16 illustrates a 1-input-M-output (1×M) PID controller thatcontrols an M-input-1-output (M×1) system. The control system consistsof a 1-input-M-output (1×M) PID controller 120, an M-input-1-output(M×1) system 122, actuators A1 through A_(M) 128, and signal adders,124, 126. The signals shown in FIG. 16 are as follows:

-   -   r(t)—Setpoint.    -   y(t)—Measured Variable or the Process Variable, y(t)=x(t)+d(t).    -   x(t)—System Output.    -   V₁(t)—Controller Output 1 to manipulate Actuator A₁.    -   V₂(t)—Controller Output 2 to manipulate Actuator A₂.    -   V_(M)(t)—Controller Output M to manipulate Actuator A_(M).    -   d(t)—Disturbance, the disturbance caused by noise or load        changes.    -   e(t)—Error between the Setpoint and Measured Variable,        e(t)=r(t)—y(t).

The control objective is for the controller to produce outputs V₁(t),V₂(t), . . . ,V_(M)(t) to manipulate actuators A₁, A₂, . . . , A_(M) sothat the measured variable y(t) tracks the given trajectory of itssetpoint r(t).

Using the similar technique, we can expand the 1×2 case to the 1×M case.When control actions cancel each others a reverse split-range settersimilar to what is illustrated in FIG. 9 is used; and the PID controlleroutputs V₁(t) and V₂(t) are calculated based oil the following formulas:$\begin{matrix}\begin{matrix}{{{u(t)} = {K_{p1}\left\{ {{e(t)} + {\frac{1}{T_{i1}}{\int{{e(t)}{\mathbb{d}t}}}} + {T_{d1}\frac{\mathbb{d}{e(t)}}{\mathbb{d}t}}} \right\}}},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{1}} \right\rbrack}\end{matrix} & \left( {57a} \right) \\\begin{matrix}{{{V_{1}(t)} = {{{- 100}\frac{u(t)}{R_{1}}} + 100}},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{1}} \right\rbrack}}\end{matrix} & \left( {57b} \right) \\\begin{matrix}{{{V_{1}(t)} = 0},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left( {R_{1},100} \right\rbrack}}\end{matrix} & \left( {57c} \right)\end{matrix}$where 0<R₁≦100, which defines the split range of u(t) for controlleroutput V₁(t); $\begin{matrix}\begin{matrix}{{{u(t)} = {K_{p2}\left\{ {{e(t)} + {\frac{1}{T_{i2}}{\int{{e(t)}{\mathbb{d}t}}}} + {T_{d2}\frac{\mathbb{d}{e(t)}}{\mathbb{d}t}}} \right\}}},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{2},R_{3}} \right\rbrack}\end{matrix} & \left( {58a} \right) \\\begin{matrix}{{{V_{2}(t)} = {{{- 100}\frac{{u(t)} - R_{3}}{R_{2} - R_{3}}} + 100}},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{2},R_{3}} \right\rbrack}}\end{matrix} & \left( {58b} \right) \\\begin{matrix}{{{V_{2}(t)} = 0},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{2}} \right)}}\end{matrix} & \left( {58c} \right) \\\begin{matrix}{{{V_{2}(t)} = 100},} & {\quad{{{for}\quad{all}\quad{u(t)}} \in \left( {R_{3},100} \right\rbrack}}\end{matrix} & \left( {58d} \right)\end{matrix}$where 0≦R₂<100, 0<R₃≦100, and R₂<R₃ which define the split range of u(t)for controller output V₂(t); . . . ;

Without losing generality, the last control signal V_(M)(t) can becalculated based on the following formulas: $\begin{matrix}{{{u(t)} = {K_{pM}\left\{ {{e(t)} + {\frac{1}{T_{iM}}{\int{{e(t)}{\mathbb{d}t}}}} + {T_{dM}\frac{\mathbb{d}{e(t)}}{\mathbb{d}t}}} \right\}}},{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{{{2M} - 2},}100} \right\rbrack}} & \left( {59a} \right)\end{matrix}$where M=3, 4, 5, 6, . . . ; $\begin{matrix}{{{V_{M}(t)} = \begin{matrix}{{{- 100}\frac{{u(t)} - R_{{2M} - 2}}{100 - R_{{2M} - 2}}} +} \\100\end{matrix}},{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{{{2M} - 2},}100} \right\rbrack}} & \left( {59b} \right) \\{{{V_{M}(t)} = 100},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{{2M} - 2}} \right)}} & \left( {59c} \right)\end{matrix}$where M=3, 5, 7, . . . ; and 0≦R_(2M-2)<100 which defines the splitrange of u(t) for controller output V_(M)(t); and $\begin{matrix}{{{V_{M}(t)} = \begin{matrix}{{{- 100}\frac{{u(t)} - 100}{R_{{2M} - 2} - 100}} +} \\100\end{matrix}},{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{{{2M} - 2},}100} \right\rbrack}} & \left( {59d} \right) \\{{{V_{M}(t)} = 0},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{{2M} - 2}} \right)}} & \left( {59e} \right)\end{matrix}$where M=4, 6, 8, . . . ; and 0≦R_(2M-2)<100 which defines the splitrange of u(t) for controller output V_(M)(t).

The signals u(t), V₁(t), V₂(t), . . . , V_(M)(t) all have a workingrange of 0% to 100%. Controller parameters K_(p1), K_(p2), . . . ,K_(pM), T_(i1), T_(i2), . . . , T_(iM), T_(d1), T_(d2), . . . , T_(dM)are entered by the user during controller Configuration. These are thePID tuning parameters suitable for the dynamics of the sub-systemsbetween the manipulated variables V₁(t), V₂(t), . . . , V_(M)(t) to thecontrolled process variable y(t), respectively. To simplify, thetreatment on the controller parameters as described in Equations (46),(47), and (50) are not presented here but can be implemented similarly.

When control actions compliment each other, a sequential split-rangesetter similar to what is illustrated in FIG. 11 is used; and the 1×MPID controller's outputs V₁(t) and V₂(t) are calculated based on thefollowing formulas: $\begin{matrix}{{{u(t)} = \begin{matrix}{K_{p1}\left\{ {{e(t)} + {\frac{1}{T_{i1}}{\int{{e(t)}{\mathbb{d}t}}}} +} \right.} \\\left. {T_{d1}\frac{\mathbb{d}{e(t)}}{\mathbb{d}t}} \right\}\end{matrix}},{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,S_{1}} \right\rbrack}} & \left( {60a} \right) \\{{{V_{1}(t)} = {{100\frac{{u(t)} - S_{1}}{S_{1}}} + 100}},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,S_{1}} \right\rbrack}} & \left( {60b} \right) \\{{{V_{1}(t)} = 100},\quad{{{for}\quad{all}\quad{u(t)}} \in \left( {S_{1},100} \right\rbrack}} & \left( {60c} \right)\end{matrix}$where 0<S₁≦100, which defines the split range of u(t) for controlleroutput V₁(t); $\begin{matrix}{{{u(t)} = \begin{matrix}{K_{p2}\left\{ {{e(t)} + {\frac{1}{T_{i2}}{\int{{e(t)}{\mathbb{d}t}}}} +} \right.} \\\left. {T_{d2}\frac{\mathbb{d}{e(t)}}{\mathbb{d}t}} \right\}\end{matrix}},{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {S_{2},S_{3}} \right\rbrack}} & \left( {61a} \right) \\{{{V_{2}(t)} = {{{- 100}\frac{{u(t)} - S_{3}}{S_{2} - S_{3}}} + 100}},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {S_{2},S_{3}} \right\rbrack}} & \left( {61b} \right) \\{{{V_{2}(t)} = 0},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,S_{2}} \right)}} & \left( {61c} \right) \\{{{V_{2}(t)} = 100},\quad{{{for}\quad{all}\quad u\quad(t)} \in \left( {S_{3},100} \right\rbrack}} & \left( {61d} \right)\end{matrix}$where 0≦S₂<100, 0<S₃≦100, and S₂<S₃ which define the split range of u(t)for controller output V₂(t); . . . ;

Without losing generality, the last PID control signal V_(M)(t) can becalculated based on the following formulas: $\begin{matrix}{{{u(t)} = \begin{matrix}{K_{pM}\left\{ {{e(t)} +} \right.} \\{{\frac{1}{T_{iM}}{\int{{e(t)}{\mathbb{d}t}}}} +} \\\left. {T_{dM}\frac{\mathbb{d}{e(t)}}{\mathbb{d}t}} \right\}\end{matrix}},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {S_{{2M} - 2},100} \right\rbrack}} & \left( {62a} \right) \\{{{V_{M}(t)} = \begin{matrix}{{{- 100}\frac{{u(t)} - 100}{S_{{2M} - 2} - 100}} +} \\100\end{matrix}},{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {S_{{2M} - 2},100} \right\rbrack}} & \left( {62b} \right) \\{{{{V_{M}(t)} = 0},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,S_{{2M} - 2}} \right)}}\quad} & \left( {62c} \right)\end{matrix}$where M=3, 4, 5, 6, . . . ; and 0≦S_(2M-2)<100 which defines the splitrange of u(t) for controller output V_(M)(t).

The signals u(t), V₁(t), V₂(t), . . . , V_(M)(t) all have a workingrange of 0% to 100%. We can easily rescale each of the output signalsV₁(t) and V₂(t) from its 0% to 100% range to an enginieerinig valuerange by using a linear function. In addition, control limits andconstraints can be applied to these signals for safety or other reasonsto limit the control actions. Controller parameters K_(p1), K_(p2), . .. , K_(pM), T_(i1), T_(i2), . . . , T_(iM), T_(d1), T_(d2), . . . ,T_(dM) are entered by the user during controller configuration.

The alternative design of the reverse split-range setter as well as thesequential split-range setter as discussed in 1×2 PID controller casecan be readily applied to the 1×M PID controller case. To simplify, theyare not presented here.

Since PID is a general-purpose controller, the 1×2 and 1×M PIDcontrollers presented in this patent apply to all alternative forms ofPID algorithms. They may be P only, PI, PD, or PID controllers, inanalog or digital formulas, with various definitions of variables,parameters and units, etc.

This 1×M PID controller with its M sets of tuning parameters will bemore powerful than a single-input-single-output PID controller with oneset of tuning parameters when controlling an M×1 system. However, sinceit is not an adaptive controller, it may not be able to handle the largedynamic changes within the sub-systems even though the dynamic changesbetween the sub-systems may be handled by using different sets of PIDtuning parameters. The 1×M Model-Free Adaptive (MFA) controllerpresented in this patent is a more preferred solution for controlling anM×1 system.

F. Single-Input-Multi-Output Controller

FIG. 17 illustrates a single-input-multi-output (SIMO) controller thatcontrols a multi-input-single-output (MISO) system. The control systemconsists of a single-input-multi-output (SIMO) controller 130, amulti-input-single-output (MISO) system 132, actuators A₁ through A_(M)138, and signal adders, 134, 136. The signals shown in FIG. 17 are asfollows:

-   -   r(t)—Setpoint.    -   y(t)—Measured Variable or the Process Variable, y(t)=x(t)+d(t).    -   x(t)—System Output.    -   V₁(t)—Controller Output 1 to manipulate Actuator A₁.    -   V₂(t)—Controller Output 2 to manipulate Actuator A₂.    -   V₃(t)—Controller Output 3 to manipulate Actuator A₃.    -   V_(M)(t)—Controller Output M to manipulate Actuator A_(M).    -   d(t)—Disturbance, the disturbance caused by noise or load        changes.    -   e(t)—Error between the Setpoint and Measured Variable,        e(t)=r(t)−y(t).

The control objective is for the controller to produce outputs V₁(t),V₂(t), V₃(t) . . . , V_(M)(t) to manipulate actuators A₁, A₂, A₃, . . ., A_(M) so that the measured variable y(t) tracks the given trajectoryof its setpoint r(t).

The SIMO controller consists of a single-input-single-output (SISO)controller 140 and a split-range setter mechanism 142. Without losinggenerality, we assume the control output of the SISO controller iscalculated in the following general formu(t)=ƒ(e(t),t, P ₁ , P ₂ , . . . , P ₁),   (63)where e(t) is the difference between controller setpoint r(t) andcontrolled process variable y(t), t is time, and P₁, P₂, . . . , P₁ arethe controller tuning parameters. Error e(t) is calculated based on theacting type of the process as follows:e(t)=r(t)−y(t), if direct acting   (64a)e(t)=−[r(t)−y(t)]. if reverse acting (64b)

Using the similar technique, we can design reverse split-range settersand sequential split-range setters as described in this patent for thisSISO controller so that it can be converted to a 1×2, 1×3, . . . , or1×M controller to control a 2×1, 3×1, . . . , or M×1 system,respectively.

We first present the results for the reverse split-range setter casewhen multiple control actions cancel each other. Assuming parameter P₁is the controller gain, to compensate for the static gain changes causedby the split-range setting of R₁, R₂, R₃ . . . , R_(2M-2), we canre-scale the controller gains based on the following formulas:$\begin{matrix}{{P_{11} = {K_{1}\frac{R_{1}}{100}}},} & (65) \\{{P_{12} = {K_{2}\frac{R_{3} - R_{2}}{100}}},} & (66) \\{{P_{13} = {K_{3}\frac{R_{5} - R_{4}}{100}}},} & (67) \\\ldots & \quad \\{{P_{1M} = {K_{M}\frac{100 - R_{{2M} - 2}}{100}}},} & (68)\end{matrix}$where M=4, 5, 6, . . . ; R₂<R₃, R₄<R₅, R_(2M-2)<R_(2M-1), and K₁, K₂,K₃, . . . , K_(M) are entered controller gains of this controller forcalculating the corresponding signals V₁(t), V₂(t), V₃(t), . . . ,V_(M)(t), respectively.

FIG. 18 illustrates a reverse split-range setter that splits thecontroller signal u(t) into M or more ranges to manipulate M differentactuators individually, simultaneously, or not at all by moving andsetting the knobs R₁, R₂, R₃, . . . R_(2M-2) 146, respectively. Thecontroller outputs V₁(t), V₂(t) and V₃(t) are calculated based on thefollowing formulas as implemented in the split-range setter mechanism142: $\begin{matrix}{{{u(t)} = {f\left( {{e(t)},t,P_{11},P_{21},\ldots\quad,P_{l1}} \right)}},{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{1}} \right\rbrack}} & \left( {69a} \right) \\{{{V_{1}(t)} = {{{- 100}\frac{u(t)}{R_{1}}} + 100}},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{1}} \right\rbrack}} & \left( {69b} \right) \\{{{V_{1}(t)} = 0},\quad{{{for}\quad{all}\quad{u(t)}} \in \left( {R_{1},100} \right\rbrack}} & \left( {69c} \right)\end{matrix}$where 0<R₁≦100, which defines the split range of u(t) for controlleroutput V₁(t); $\begin{matrix}{{{u(t)} = {f\left( {{e(t)},t,P_{12},P_{22},\ldots\quad,P_{l2}} \right)}},{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{2},R_{3}} \right\rbrack}} & \left( {70a} \right) \\{{{V_{2}(t)} = {{{- 100}\frac{{u(t)} - R_{3}}{R_{2} - R_{3}}} + 100}},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{2},R_{3}} \right\rbrack}} & \left( {70b} \right) \\{{{V_{2}(t)} = 0},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{2}} \right)}} & \left( {70c} \right) \\{{{V_{2}(t)} = 100},\quad{{{for}\quad{all}\quad u\quad(t)} \in \left( {R_{3},100} \right\rbrack}} & \left( {61d} \right)\end{matrix}$where 0≦R₂<100, 0<R₃≦100, and R₂<R₃ which define the split range of u(t)for controller output V₂(t); $\begin{matrix}{{{u(t)} = {f\left( {{e(t)},t,P_{13},P_{23},\ldots\quad,P_{l3}} \right)}},{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{4},R_{5}} \right\rbrack}} & \left( {71a} \right) \\{{{V_{3}(t)} = {{{- 100}\frac{{u(t)} - R_{4}}{R_{5} - R_{4}}} + 100}},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{4},R_{5}} \right\rbrack}} & \left( {71b} \right) \\{{{V_{3}(t)} = 100},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{4}} \right)}} & \left( {71c} \right) \\{{{V_{3}(t)} = 0},\quad{{{for}\quad{all}\quad u\quad(t)} \in \left( {R_{5},100} \right\rbrack}} & \left( {71d} \right)\end{matrix}$where 0≦R₄<100, 0<R₅≦100, and R₄<R₅ which define the split range of u(t)for controller output V₃(t); . . . ;

Without losing generality, the last control signal V_(M)(t) can becalculated based on the following formulas: $\begin{matrix}{{{u(t)} = {f\left( {{e(t)},t,P_{1M},P_{2M},\ldots\quad,P_{l\quad M}} \right)}},{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{{2M} - 2},100} \right\rbrack}} & \left( {72a} \right) \\{{{{where}\quad M} = 4},5,6,7,{\ldots\quad;}} & \quad \\{{{V_{M}(t)} = {{{- 100}\frac{{u(t)} - R_{{2M} - 2}}{100 - R_{{2M} - 2}}} + 100}},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{{2M} - 2},100} \right\rbrack}} & \left( {72b} \right) \\{{{V_{M}(t)} = 100},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{{2M} - 2}} \right)}} & \left( {72c} \right) \\{{{{where}\quad M} = 5},7,9,{\ldots\quad;{{{and}\quad 0} \leq R_{{2M} - 2} < 100};}} & \quad \\{{{V_{M}(t)} = {{{- 100}\frac{{u(t)} - 100}{R_{{2M} - 2} - 100}} + 100}},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{{2M} - 2},100} \right\rbrack}} & \left( {72d} \right) \\{{{V_{M}(t)} = 0},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{{2M} - 2}} \right)}} & \left( {72e} \right)\end{matrix}$where M=4, 6, 8, . . . ; and 0≦R_(2M-2)<100 which defines the splitrange of u(t) for controller output V_(M)(t).

The signals u(t), V₁(t), V₂(t), V₂(t), . . . , V_(M)(t) all have aworking range of 0% to 100%. Controller parameters P₁₁, P₁₂, . . . ,P_(1M), P₂₁, P₂₂, . . . , P_(2M), . . . , P₃₁, P₃₂, . . . , P_(3M), . .. , P₁₁, P₁₂, . . . , P_(1M), are entered by the user during controllerconfiguration. These are the controller tuning parameters suitable forthe dynamics of the sub-systems between the manipulated variables V₁(t),V₂(t), V₃(t), . . . , V_(M)(t) to the controlled process variable y(t),respectively.

For the two special cases, when R_(2i-2)>R_(2i-3) and u(t) is inside thesignal overlap area; and when R_(2i-2)<R_(2i-3) and u(t) is inside thedeadband, we can simply let $\begin{matrix}{{P_{1i} = \frac{P_{1,{{2i} - 2}} + P_{1,{{2i} - 3}}}{2}},{{for}\quad{u(t)}\quad{inside}\quad{deadband}\quad{or}\quad{overlap}\quad{area}}} & \left( {73a} \right) \\{{P_{2i} = \frac{P_{2,{{2i} - 2}} + P_{2,{{2i} - 3}}}{2}},{{for}\quad{u(t)}\quad{inside}\quad{deadband}\quad{or}\quad{overlap}\quad{area}}} & \left( {73b} \right) \\\ldots & \quad \\{{P_{l,i} = \frac{P_{l,{{2i} - 2}} + P_{l,{{2i} - 3}}}{2}},{{for}\quad{u(t)}\quad{inside}\quad{deadband}\quad{or}\quad{overlap}\quad{area}}} & \left( {73c} \right)\end{matrix}$where i=2, 3, 4, . . . , M. Then, the controller signal u(t) can becalculated based on these averaged controller tuning parametersaccordingly based on whether or not u(t) is inside the deadband oroverlap area. Equations (65) to (72) are still valid in these cases.

In the sequential split-range setter case when multiple control actionscompliment each other, we can apply the similar technique to calculatethe controller parameters. Assuming parameter P₁ is the controller gain,to compensate for the static gain changes caused by the sequentialsplit-range setting of S₁, S₂, S₃ . . . , S_(2M-2), we can re-scale thecontroller gains based on the following formulas: $\begin{matrix}{{P_{11} = {K_{1}\frac{S_{1}}{100}}},} & (74) \\{{P_{12} = {K_{2}\frac{S_{3} - S_{2}}{100}}},} & (75) \\{{P_{13} = {K_{3}\frac{S_{5} - S_{4}}{100}}},} & (76) \\\ldots & \quad \\{{P_{1M} = {K_{M}\frac{100 - S_{{2M} - 2}}{100}}},} & (77)\end{matrix}$where M=4, 5, 6 . . . ; S₂<S₃, S₄<S₅, S_(2M-2)<S_(2M-1), and K₁, K₂, K₃,. . . , K_(M) are entered controller gains of this controller for V₁(t),V₂(t), V₃(t), . . . , V_(M)(t), respectively.

FIG. 19 illustrates a sequential split-range setter that converts thecontroller signal u(t) into M or more ranges to manipulate M differentactuators individually, simultaneously, or not at all by moving andsetting the knobs S₁, S₂, S₃, . . . , S_(2M-2) 148, respectively. Thecontroller outputs V₁(t), V₂(t), and V₃(t) are calculated based on thefollowing formulas as implemented in the split-range setter mechanism142: $\begin{matrix}{{{u(t)} = {f\left( {{e(t)},t,P_{11},P_{21},\ldots\quad,P_{l1}} \right)}},{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,S_{1}} \right\rbrack}} & \left( {78a} \right) \\{{{V_{1}(t)} = {{100\frac{{u(t)} - S_{1}}{S_{1}}} + 100}},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,S_{1}} \right\rbrack}} & \left( {78b} \right) \\{{{V_{1}(t)} = 100},\quad{{{for}\quad{all}\quad{u(t)}} \in \left( {S_{1},100} \right\rbrack}} & \left( {78c} \right)\end{matrix}$where 0<S₁≦100, which defines the split range of u(t) for controlleroutput V₁(t); $\begin{matrix}{{{u(t)} = {f\left( {{e(t)},t,P_{12},P_{22},\ldots\quad,P_{l2}} \right)}},{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {S_{2},S_{3}} \right\rbrack}} & \left( {79a} \right) \\{{{V_{2}(t)} = {{{- 100}\frac{{u(t)} - S_{3}}{S_{2} - S_{3}}} + 100}},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {S_{2},S_{3}} \right\rbrack}} & \left( {79b} \right) \\{{{V_{2}(t)} = 0},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,S_{2}} \right)}} & \left( {79c} \right) \\{{{V_{2}(t)} = 100},\quad{{{for}\quad{all}\quad{u(t)}} \in \left( {S_{3},100} \right\rbrack}} & \left( {79d} \right)\end{matrix}$where 0≦S₂<100, 0<S₃≦100, and S₂<S₃, which define the split range ofu(t) for controller output V₂(t); and $\begin{matrix}{{{u(t)} = {f\left( {{e(t)},t,P_{13},P_{23},\ldots\quad,P_{l3}} \right)}},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {S_{4},S_{5}} \right\rbrack}} & \left( {80a} \right) \\{{{V_{3}(t)} = {{{- 100}\frac{{u(t)} - S_{5}}{S_{4} - S_{5}}} + 100}},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {S_{4},S_{5}} \right\rbrack}} & \left( {80b} \right) \\{{{V_{3}(t)} = 0},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,S_{4}} \right)}} & \left( {80c} \right) \\{{{V_{3}(t)} = 100},\quad{{{for}\quad{all}\quad u\quad(t)} \in \left( {S_{5},100} \right\rbrack}} & \left( {80d} \right)\end{matrix}$where 0≦S₄<100, 0<S₅≦100, and S₄<S₅, which define the split range ofu(t) for controller output V₃(t); . . . ;

Without losing generality, the last control signal V_(M)(t) of this 1×Mcontroller can be calculated based on the following formulas:$\begin{matrix}{{{u(t)} = {f\left( {{e(t)},t,P_{1M},P_{2M},\ldots\quad,P_{lM}} \right)}},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {S_{{2M} - 2},100} \right\rbrack}} & \left( {81a} \right) \\{{{V_{M}(t)} = {{{- 100}\frac{{u(t)} - 100}{S_{{2M} - 2} - 100}} + 100}},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {S_{{2M} - 2},100} \right\rbrack}} & \left( {81b} \right) \\{{{V_{M}(t)} = 0},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,S_{{2M} - 2}} \right\rbrack}} & \left( {81c} \right)\end{matrix}$where M=4, 5, 6, 7, . . . ; and 0≦S_(2M-2)<100 which defines the splitrange of u(t) for controller output V_(M)(t).

The signals u(t), V₁(t), V₂(t), V₃(t), . . . , V_(M)(t) all have aworking range of 0% to 100%. Controller parameters P₁₁, P₁₂, . . . ,P_(1M), P₂₁, P₂₂, . . . , P_(2M), . . . , P₃₁, P₃₂, . . . , P_(3M), . .. , P₁₁, P₁₂, . . . , P_(1M) are entered by the user during controllerconfiguration. These are the controller tuning parameters suitable forthe dynamics of the sub-systems between the manipulated variables V₁(t),V₂(t), V₃(t), . . . , V_(M)(t) to the controlled process variable y(t),respectively.

The alternative design of the reverse split-range setter and thesequential split-range setter as discussed in 1×3 MFA controller case ofthis patent can be readily applied to this 1×M controller case. Tosimplify, they are not presented here.

G. SIMO Controller with Combined Split-Range Setter

FIG. 20 illustrates a single-input-multi-output (SIMO) controller thatcontrols a multi-input-single-output (MISO) system, where a combinedsplit-range setter is used. The control system consists of asingle-input-multi-output (SIMO) controller 150, amulti-input-single-output (MISO) system 152, actuators A_(r1) A_(r2)A_(s1) and A_(s2) 158, and signal adders, 154, 156. The signals shown inFIG. 20 are as follows:

-   -   r(t)—Setpoint.    -   y(t)—Measured Variable or the Process Variable, y(t)=x(t)+d(t).    -   x(t)—System Output.    -   V_(r1)(t)—Controller Output to manipulate Actuator A_(r1).    -   V_(r2)(t)—Controller Output to manipulate Actuator A_(r2).    -   V_(s1)(t)—Controller Output to manipulate Actuator A_(s1).    -   V_(s2)(t)—Controller Output to manipulate Actuator A_(s2).    -   d(t)—Disturbance, the disturbance caused by noise or load        changes.    -   e(t)—Error between the Setpoint and Measured Variable,        e(t)=r(t)−y(t).

The control objective is for the controller to produce outputsV_(r1)(t), V_(r2)(t), V_(s1)(t), and V_(s2)(t) to manipulate actuatorsA_(r1), A_(r2), A_(s1), and A_(s2) so that the measured variable y(t)tracks the given trajectory of its setpoint r(t).

The SIMO controller 150 consists of a single-input-single-output (SISO)controller 160 and a combined split-range setter 166. The combinedsplit-range setter combines the control actions that cancel each otherand the control actions that compliment each other. For instance, a pHcontrol system may use a coarse acid valve, a fine acid valve, a coarsecaustic valve, and a fine caustic valve to provide sufficient workingrange for dosing the acid and caustic reagent simultaneously,individually, or not at all.

The combined split-range setter 166 in FIG. 20 consists of a reversesplit-range setter mechanism 162, and a sequential split-range settermechanism 164. This is an example of how a combined split-range settermechanism can be constructed to convert the controller signal u(t) of aSISO controller to control outputs V_(r1)(t), V_(r2)(t), V_(s1)(t) andV_(s2)(t) to manipulate actuators A_(r1), A_(r2), A_(s1), and A_(s2),which include control actions that cancel each other and control actionsthat compliment each other.

We assume the control output of the SISO controller is calculated in thefollowing general formu(t)=ƒ(e(t),t, P ₁ , P ₂ , . . . , P ₁),   (82)where e(t) is the difference between controller setpoint r(t) andcontrolled process variable y(t), t is time, and P₁, P₂, . . . , P₁ arethe controller tuning parameters. Error e(t) is calculated based on theacting type of the process as follows:e(t)=r(t)−y(t), if direct acting   (83a)e(t)=−[r(t)−y(t)]. if reverse acting   (83b)

Without losing generality, we will use the 1×2 reverse split-rangesetter as illustrated in FIG. 3 and the 1×2 sequential split-rangesetter as illustrated in FIG. 5 to demonstrate the idea of constructinga combined split-range setter. Since we have shown the detailed designof the 1×3 and 1×M reverse split-range setters as well as the 1×3 and1×M sequential split-range setters, the 1×3 and 1×M combined split-rangesetters can be constructed in a similar way. To simplify, they are notpresented here.

The reverse split-range setter shown in FIG. 3 splits the controllersignal u(t) into 2 or more ranges to manipulate 2 different actuatorsindividually, simultaneously, or neither by moving and setting the knobsR₁ and R₂ 50, respectively. The corresponding controller outputsV_(r1)(t) and V_(r2)(t) in FIG. 20 are calculated based on the followingformulas: $\begin{matrix}{{{V_{r1}(t)} = {{{- 100}\frac{u(t)}{R_{1}}} + 100}},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{1}} \right\rbrack}} & \left( {84a} \right) \\{{{V_{r1}(t)} = 0},\quad{{{for}\quad{all}\quad{u(t)}} \in \left( {R_{1},100} \right\rbrack}} & {\quad\left( {84b} \right)}\end{matrix}$where 0<R₁≦100, which defines the split range of u(t) for controlleroutput V_(r1)(t); and $\begin{matrix}{{{V_{r2}(t)} = {{{- 100}\frac{{u(t)} - 100}{R_{2} - 100}} + 100}},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{2},100} \right\rbrack}} & \left( {85a} \right) \\{{{V_{r2}(t)} = 0},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{2}} \right)}} & {\quad\left( {85b} \right)}\end{matrix}$where 0≦R₂<100, which defines the split range of u(t) for controlleroutput V_(r2)(t).

The sequential split-range setter as illustrated in FIG. 5 converts thecontroller signal u(t) into 2 or more ranges to manipulate 2 differentactuators individually, simultaneously, or neither by moving and settingthe knobs S₁ and S₂ 54, respectively. The corresponding controlleroutputs V_(s1)(t) and V_(s2)(t) in FIG. 20 are calculated based on thefollowing formulas: $\begin{matrix}{{{V_{s1}(t)} = {{100\frac{{u(t)} - S_{1}}{S_{1}}} + 100}},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,S_{1}} \right\rbrack}} & \left( {86a} \right) \\{{{V_{s1}(t)} = 100},\quad{{{for}\quad{all}\quad{u(t)}} \in \left( {S_{1},100} \right\rbrack}} & {\quad\left( {86b} \right)}\end{matrix}$where 0<S₁≦100, which defines the split range of u(t) for controlleroutput V_(s1)(t); and $\begin{matrix}{{{V_{s2}(t)} = {{{- 100}\frac{{u(t)} - 100}{S_{2} - 100}} + 100}},} & {{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {S_{2},100} \right\rbrack}\quad} & \left( {87a} \right) \\{{{V_{s2}(t)} = 0},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,S_{2}} \right)} & \left( {87b} \right)\end{matrix}$where 0≦S₂<100, which defines the split range of u(t) for controlleroutput V_(s2)(t).

The signals u(t), V_(r1)(t), V_(r2)(t), V_(s1)(t) and V_(s2)(t) all havea working range of 0% to 100%. We can easily rescale each of the outputsignals V_(r1)(t), V_(r2)(t), V_(s1)(t) and V_(s2)(t) from its 0% to100% range to an engineering value range by using a linear function. Inaddition, control limits and constraints can be applied to these signalsfor safety or other reasons to limit the control actions.

This is the general case example of converting asingle-input-single-output (SISO) controller including but not limitedto a model-free adaptive (MFA) controller, or aproportional-integral-derivative (PID) controller, or any other form ofSISO controller to a single-input-multi-output (SIMO) controller tomanipulate M actuators individually, simultaneously, or not at all tocontrol a multi-input-single-output (MISO) system or process. In thesecases, control actions may cancel each other or compliment each other.The reverse split-range setters and sequential split-range setterspresented in this patent can be combined in one combined split-rangesetter mechanism to perform respective control actions to achievecontrol objectives. While the foregoing has been with reference toparticular embodiments of the invention, it will be appreciated by thoseskilled in the art that changes in these embodiments may be made withoutdeparting from the principles and spirit of the invention, the scope ofwhich is defined by the appended claims.

1. A 1-input-2-output controller for a process having a process outputwhich is controlled by two controller outputs V₁(t) and V₂(t) applied totwo actuators whose outputs are the inputs of said process, saidcontroller including a neural network comprising: a) an error inputrepresentative of the difference between a predetermined setpoint andsaid process output; b) a normalization unit for normalizing said errorinput to a predetermined range of values; c) a scaling function forscaling said normalized error input to produce a value E₁ of the form${E_{1} = {\frac{K_{cx}}{T_{cx}}{N\left( {e(t)} \right)}}},$ or anequivalent thereof, in which K_(cx) is the controller gain; T_(cx) isthe user-selected time constant of said process; N(·) is thenormalization function of said normalization unit; and e(t) is the valueof said error input at any given time; d) a layer of input neuronshaving as their inputs successively time-delayed values of E₁; e) alayer of hidden neurons each having as its output the sum ofindividually weighted ones of said successively time-delayed values ofE₁; f) an output neuron having as its output the sum of a first functionof the individually weighted outputs of said hidden neurons; g) acontrol signal u(t) which is at least in part the denormalized value ofa second function of the output of said output neuron; and h) asplit-range setter arranged to produce from the said control signal thesaid controller outputs V₁(t) and V₂(t).
 2. The controller of claim 1,in which said control signal u(t) is the sum of said denormalized valueand the value K_(cx)e(t), or an equivalent thereof.
 3. The controller ofclaim 1, in which said first and second functions are both of the form$\begin{matrix}{{{f(x)} = 0},} & {{{if}{\quad\quad}x} < {- \frac{b}{a}}} \\{{{f(x)} = {{ax} + b}},} & {{{{if}\quad - \frac{b}{a}} \leq x \leq \quad\frac{b}{a}}\quad} \\{{{f(x)} = 1},} & {{{if}{\quad\quad}x} > \frac{b}{a}}\end{matrix}$ or an equivalent thereof, wherein a is an arbitraryconstant and b=½.
 4. The controller of claim 1, in which the saidscaling function for scaling said normalized error input to produce avalue E₁ of the form $\begin{matrix}{{E_{1} = {\frac{K_{c1}}{T_{c1}}{N\left( {e(t)} \right)}}},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{1}} \right\rbrack} \\{{E_{1} = {\frac{K_{c2}}{T_{c2}}{N\left( {e(t)} \right)}}},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{2},100} \right\rbrack}\end{matrix}$ or an equivalent thereof, in which K_(c1) and K_(c2) arecontroller gains; T_(c1) and T_(c2) are the user-selected time constantsof said process; N(·) is the normalization function of saidnormalization unit; e(t) is the value of said error input at any giventime; and R₁ and R₂ are two values within 0 to
 100. 5. The controller ofclaim 1, in which said control signal is of the form: $\begin{matrix}{{{u(t)} = {{K_{c1}{e(t)}} + {100\left\lbrack {{a{\sum\limits_{j = 1}^{N}\quad{{h_{j}(n)}{q_{j}(n)}}}} + b} \right\rbrack}}},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{1}} \right\rbrack} \\{{{u(t)} = {{K_{c2}{e(t)}} + {100\left\lbrack {{a{\sum\limits_{j = 1}^{N}\quad{{h_{j}(n)}{q_{j}(n)}}}} + b} \right\rbrack}}},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{2},100} \right\rbrack}\end{matrix}$ or an equivalent thereof, in which K_(c1) and K_(c2) arecontroller gains; e(t) is said error signal; h_(j)(n) is the weightingfactor for the jth hidden neuron output; q_(j)(n) is the jth hiddenneuron output; and R₁ and R₂ are two values within 0 to
 100. 6. Thecontroller of claim 5, in which said controller gains K_(c1) and K_(c2)are of the form: $\begin{matrix}{{K_{c1} = {K_{1}\frac{R_{1}}{100}}},} \\{{K_{c2} = {K_{2}\frac{100 - R_{2}}{100}}},}\end{matrix}$ or an equivalent thereof, in which K₁ and K₂ areuser-selected controller gains for controller outputs V₁(t) and V₂(t);and R₁ and R₂ are two values within 0 to
 100. 7. The controller of claim1, in which the said scaling function for scaling said normalized errorinput to produce the value E₁ is of the form${E_{1} = {\frac{K_{c}}{T_{c}}{N\left( {e(t)} \right)}}},$ or anequivalent thereof, where the controller gain K_(c) and time constantT_(c) are of the form: $\begin{matrix}{{K_{c} = \frac{K_{c1} + K_{c2}}{2}},} \\{{T_{c} = \frac{T_{c1} + T_{c2}}{2}},}\end{matrix}$ or an equivalent thereof, in which K₁ and K₂ areuser-selected controller gains for controller outputs V₁(t) and V₂(t);u(t) is inside the signal overlap area if the signals V₁(t) and V₂(t)overlap; or u(t) is inside the deadband if a deadband between thesignals V₁(t) and V₂(t) exist.
 8. A 1-input-2-outputProportional-Integral-Derivative (PID) controller for a process having aprocess output which is controlled by two controller outputs V₁(t) andV₂(t) applied to two actuators whose outputs are the inputs of saidprocess, said controller comprising: a) an error input representative ofthe difference between a predetermined setpoint and said process output;b) a control signal u(t) is of the form:${{u(t)} = {K_{p}\left\{ {{e(t)} + {\frac{1}{T_{i}}{\int{{e(t)}{\mathbb{d}t}}}} + {T_{d}\frac{\mathbb{d}{e(t)}}{\mathbb{d}t}}} \right\}}},$or equivalent thereof, in which K_(p) is the proportional gain, T_(i) isthe integral time, and T_(d) is the derivative time; e(t) is the valueof said error input at any given time; and c) a split-range setterarranged to produce from the said control signal the said controlleroutputs V₁(t) and V₂(t).
 9. The controller of claim 8, in which saidcontrol signal is of the form: $\begin{matrix}{{{u(t)} = {K_{p1}\left\{ {{e(t)} + {\frac{1}{T_{i1}}{\int{{e(t)}{\mathbb{d}t}}}} + {T_{d1}\frac{\mathbb{d}{e(t)}}{\mathbb{d}t}}} \right\}}},} & {{{for}\quad{all}{\quad\quad}{u(t)}} \in \left\lbrack {0,R_{1}} \right\rbrack} \\{{{u(t)} = {K_{p2}\left\{ {{e(t)} + {\frac{1}{T_{i2}}{\int{{e(t)}{\mathbb{d}t}}}} + {T_{d2}\frac{\mathbb{d}{e(t)}}{\mathbb{d}t}}} \right\}}},} & {{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{2},100} \right\rbrack}\quad}\end{matrix}$ or an equivalent thereof, in which K_(p1) and K_(p2) arethe proportional gains, T_(i1) and T_(i2) are the integral times, T_(d1)and T_(d2) are the derivative times; e(t) is said error signal; and R₁and R₂ are two values within 0 to
 100. 10. The controller of claim 9, inwhich said proportional gain, integral time, and derivative time are ofthe form:${K_{P} = \frac{K_{P1} + K_{p2}}{2}},{T_{i} = \frac{T_{i1} + T_{i2}}{2}},{T_{d} = \frac{T_{d1} + T_{d2}}{2}},$or an equivalent thereof, in which u(t) is inside the signal overlaparea if the signals V₁(t) and V₂(t) overlap; or u(t) is inside thedeadband if a deadband between the signals V₁(t) and V₂(t) exist. 11.The controller of claim 9, in which said proportional gains are of theform:${K_{p1} = {K_{1}\frac{R_{1}}{100}}},{K_{p2} = {K_{2}\frac{100 - R_{2}}{100}}},$or an equivalent thereof, in which K₁ and K₂ are user-selectedproportional gains of PID for said controller outputs V₁(t) and V₂(t);and R₁ and R₂ are two values within 0 to
 100. 12. The controller ofclaim 1 or 8, in which said split-range setter produces the saidcontroller outputs of the form: $\begin{matrix}{{{V_{1}(t)} = {{{- 100}\frac{u(t)}{R_{1}}} + 100}},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{1}} \right\rbrack} \\{{{V_{1}(t)} = 0},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{1},100} \right\rbrack} \\{{{V_{2}(t)} = {{{- 100}\frac{{u(t)} - 100}{R_{2} - 100}} + 100}},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{2},100} \right\rbrack} \\{{{V_{2}(t)} = 0},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{2}} \right\rbrack}\end{matrix}$ or an equivalent thereof, in which 0<R₁≦100, 0≦R₂<100, thesignals u(t), V₁(t), and V₂(t) all having a working range of 0 to 100.13. The controller of claim 1 or 8, in which said split-range setterproduces the said controller outputs of the form: $\begin{matrix}{{{V_{1}(t)} = {{100\frac{{u(t)} - R_{1}}{R_{1}}} + 100}},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{1}} \right\rbrack} \\{{{V_{1}(t)} = 100},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{1},100} \right\rbrack} \\{{{V_{2}(t)} = {{{- 100}\frac{{u(t)} - R_{2}}{100 - R_{2}}} + 100}},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{2},100} \right\rbrack} \\{{{V_{2}(t)} = 100},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{2}} \right)}\end{matrix}$ or an equivalent thereof, in which 0<R₁≦100, 0≦R₂<100, thesignals u(t), V₁(t), and V₂(t) all having a working range of 0 to 100.14. The controller of claim 1 or 8, in which said split-range setterproduces the said controller outputs of the form: $\begin{matrix}{{{V_{1}(t)} = {{100\frac{{u(t)} - S_{1}}{S_{1}}} + 100}},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,S_{1}} \right\rbrack} \\{{{V_{1}(t)} = 100},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {S_{1},100} \right\rbrack} \\{{{V_{2}(t)} = {{{- 100}\frac{{u(t)} - 100}{S_{2} - 100}} + 100}},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {S_{2},100} \right\rbrack} \\{{{V_{2}(t)} = 0},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,S_{2}} \right)}\end{matrix}$ or an equivalent thereof, in which 0<S₁≦100, 0≦S₂<100, thesignals u(t), V₁(t), and V₂(t) all having a working range of 0 to 100.15. The controller of claim 1 or 8, in which said split-range setterproduces the said controller outputs of the form: $\begin{matrix}{{{V_{1}(t)} = {{{- 100}\frac{u(t)}{S_{1}}} + 100}},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,S_{1}} \right\rbrack} \\{{{V_{1}(t)} = 0},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {S_{1},100} \right\rbrack} \\{{{V_{2}(t)} = {{{- 100}\frac{{u(t)} - S_{2}}{100 - S_{2}}} + 100}},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {S_{2},100} \right\rbrack} \\{{{V_{2}(t)} = 100},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,S_{2}} \right)}\end{matrix}$ or an equivalent thereof, in which 0<S₁≦100, 0≦S₂<100, thesignals u(t), V₁(t), and V₂(t) all having a working range of 0 to 100.16. The controller of claim 12, 13, 14, or 15, in which said split-rangesetter includes individual controls that can be set freely within saidsplit range to produce controller outputs V₁(t), and V₂(t) that providea deadband between said controller outputs, an overlap thereof, or acontinuum from one to the other.
 17. The controller of claim 1 or 8, inwhich the controller outputs V₁(t) and V₂(t) are re-scalable from the 0to 100 range to an engineering value range by using a linear function.18. The controller of claim 1 or 8, in which the controller outputsV₁(t) and V₂(t) are arranged to include selectable control limits orcontrol constraints.
 19. A 1-input-3-output controller for a processhaving a process output which is controlled by three controller outputsV₁(t), V₂(t), and V₃(t) applied to three actuators whose outputs are theinputs of said process, said controller including a neural networkcomprising: a) an error input representative of the difference between apredetermined setpoint and said process output; b) a normalization unitfor normalizing said error input to a predetermined range of values; c)a scaling function for scaling said normalized error input to produce avalue E₁ of the form $\begin{matrix}{{E_{1} = {\frac{K_{c1}}{T_{c1}}{N\left( {e(t)} \right)}}},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{1}} \right\rbrack} \\{{E_{1} = {\frac{K_{c2}}{T_{c2}}{N\left( {e(t)} \right)}}},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{2},R_{3}} \right\rbrack} \\{{E_{1} = {\frac{K_{c3}}{T_{c3}}{N\left( {e(t)} \right)}}},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{4},100} \right\rbrack}\end{matrix}$ or equivalent thereof, in which 0<R₁≦100, 0≦R₂<100,0<R₃≦100, R₂<R₃, 0≦R₄<100, K_(c1), K_(c2), and K_(c3) are the controllergains; T_(c1), T_(c2), and T_(c3) are the user-selected time constantsof said process; N(·) is the normalization function of saidnormalization unit; and e(t) is the value of said error input at anygiven time; d) a layer of input neurons having as their inputssuccessively time-delayed values of E₁; e) a layer of hidden neuronseach having as its output the sum of individually weighted ones of saidsuccessively time-delayed values of E₁; f) an output neuron having asits output the sum of a first function of the individually weightedoutputs of said hidden neurons; g) a control signal u(t) which is atleast in part the denormalized value of a second function of the outputof said output neuron; and h) a split-range setter arranged to producefrom the said control signal the said controller outputs V₁(t), V₂(t),and V₃(t).
 20. The controller of claim 19, in which said first andsecond functions are both of the form $\begin{matrix}{{{f(x)} = 0},} & {{{if}\quad x} < {- \frac{b}{a}}} \\{{{f(x)} = {{ax} + b}},} & {{{if} - \frac{b}{a}} \leq x \leq \frac{b}{a}} \\{{{f(x)} = 1},} & {{{if}{\quad\quad}x} > \frac{b}{a}}\end{matrix}$ or an equivalent thereof, wherein a is an arbitraryconstant and b=½.
 21. The controller of claim 19, in which said controlsignal is of the form: $\begin{matrix}{{{u(t)} = {{K_{c1}{e(t)}} + {100\left\lbrack {{a{\sum\limits_{j = 1}^{N}{{h_{j}(n)}{q_{j}(n)}}}} + b} \right\rbrack}}},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{1}} \right\rbrack} \\{{{u(t)} = {{K_{c2}{e(t)}} + {100\left\lbrack {{a{\sum\limits_{j = 1}^{N}{{h_{j}(n)}{q_{j}(n)}}}} + b} \right\rbrack}}},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{2},R_{3}} \right\rbrack} \\{{{u(t)} = {{K_{c3}{e(t)}} + {100\left\lbrack {{a{\sum\limits_{j = 1}^{N}{{h_{j}(n)}{q_{j}(n)}}}} + b} \right\rbrack}}},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{4},100} \right\rbrack}\end{matrix}$ or equivalent thereof, in which 0<R₁≦100, 0≦R₂<100,0<R₃≦100, R₂<R₃, 0≦R₄<100, K_(c1), K_(c2), and K_(c3) are the controllergains; e(t) is said error signal; h_(j)(n) is the weighting factor forthe jth hidden neuron output; and q_(j)(n) is the jth hidden neuronoutput.
 22. The controller of claim 19, in which said split-range setterproduces the said controller outputs of the form: $\begin{matrix}{{{V_{1}(t)} = {{{- 100}\frac{u(t)}{R_{1}}} + 100}},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{1}} \right\rbrack} \\{{{V_{1}(t)} = 0},} & {{{for}\quad{all}\quad{u(t)}} \in \left( {R_{1},100} \right\rbrack} \\{{{V_{2}(t)} = {{{- 100}\frac{{u(t)} - R_{3}}{R_{2} - R_{3}}} + 100}},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{2},R_{3}} \right\rbrack} \\{{{V_{2}(t)} = 0},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{2}} \right)} \\{{{V_{2}(t)} = 100},} & {{{for}\quad{all}\quad{u(t)}} \in \left( {R_{3},100} \right\rbrack} \\{{{V_{3}(t)} = {{{- 100}\frac{{u(t)} - R_{4}}{100 - R_{4}}} + 100}},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{4},100} \right\rbrack} \\{{{V_{3}(t)} = 100},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{4}} \right)}\end{matrix}$ or equivalent thereof, in which 0<R₁≦100, 0≦R₂<100,0<R₃≦100, R₂<R₃, 023 R₄<100, the signals u(t), V₁(t), V₂(t), and V₃(t)all having a working range of 0 to
 100. 23. The controller of claim 19,in which said split-range setter produces the said controller outputs ofthe form: $\begin{matrix}{{{V_{1}(t)} = {{100\frac{{u(t)} - R_{1}}{R_{1}}} + 100}},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{1}} \right\rbrack}} \\{{{V_{1}(t)} = 100},\quad{{{for}\quad{all}\quad{u(t)}} \in \left( {R_{1},100} \right\rbrack}} \\{{{V_{2}(t)} = {{{- 100}\frac{{u(t)} - R_{2}}{R_{3} - R_{2}}} + 100}},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{2},R_{3}} \right\rbrack}} \\{{{V_{2}(t)} = 100},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{2}} \right)}} \\{{{V_{2}(t)} = 0},\quad{{{for}\quad{all}\quad{u(t)}} \in \left( {R_{3},100} \right\rbrack}} \\{{{V_{3}(t)} = {{{- 100}\frac{{u(t)} - 100}{R_{4} - 100}} + 100}},{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{4},100} \right\rbrack}} \\{{{V_{3}(t)} = 0},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{4}} \right)}}\end{matrix}$ or equivalent thereof, in which 0<R₁≦100, 0≦R₂<100,0<R₃≦100, R₂<R₃ , 0≦R ₄<100, the signals u(t), V₁(t), V₂(t), and V₃(t)all having a working range of 0 to
 100. 24. The controller of claim 19,in which said split-range setter produces the said controller outputs ofthe form: $\begin{matrix}{{{V_{1}(t)} = {{100\frac{{u(t)} - S_{1}}{S_{1}}} + 100}},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,S_{1}} \right\rbrack}} \\{{{V_{1}(t)} = 100},\quad{{{for}\quad{all}\quad{u(t)}} \in \left( {S_{1},100} \right\rbrack}} \\{{{V_{2}(t)} = {{{- 100}\frac{{u(t)} - S_{3}}{S_{2} - S_{3}}} + 100}},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {S_{2},S_{3}} \right\rbrack}} \\{{{V_{2}(t)} = 0},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,S_{2}} \right)}} \\{{{V_{2}(t)} = 100},\quad{{{for}\quad{all}\quad{u(t)}} \in \left( {S_{3},100} \right\rbrack}} \\{{{V_{3}(t)} = {{{- 100}\frac{{u(t)} - 100}{S_{4} - 100}} + 100}},{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {S_{4},100} \right\rbrack}} \\{{{V_{3}(t)} = 0},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,S_{4}} \right)}}\end{matrix}$ or equivalent thereof, in which 0<S₁≦100, 0≦S₂<100,0<S₃≦100, S₂<S₃, and 0≦S₄<100; S_(j) being equivalent to R_(j), j=1, 2,3, 4; the signals u(t), V₁(t), V₂(t), and V₃(t) all having a workingrange of 0 to
 100. 25. The controller of claim 19, in which saidsplit-range setter produces the said controller outputs of the form:$\begin{matrix}{{{V_{1}(t)} = {{{- 100}\frac{u(t)}{S_{1}}} + 100}},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,S_{1}} \right\rbrack}} \\{{{V_{1}(t)} = 0},\quad{{{for}\quad{all}\quad{u(t)}} \in \left( {S_{1},100} \right\rbrack}} \\{{{V_{2}(t)} = {{{- 100}\frac{{u(t)} - S_{2}}{S_{3} - S_{2}}} + 100}},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {S_{2},S_{3}} \right\rbrack}} \\{{{V_{2}(t)} = 100},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,S_{2}} \right)}} \\{{{V_{2}(t)} = 0},\quad{{{for}\quad{all}\quad{u(t)}} \in \left( {S_{3},100} \right\rbrack}} \\{{{V_{3}(t)} = {{{- 100}\frac{{u(t)} - S_{4}}{100 - S_{4}}} + 100}},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {S_{4},100} \right\rbrack}} \\{{{V_{3}(t)} = 100},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,S_{4}} \right)}}\end{matrix}$ or equivalent thereof, in which 0<S₁≦100, 0≦S₂<100,0<S₃≦100, S₂<S₃, and 0≦S₄100; S_(j) being equivalent to R_(j), j=1, 2,3, 4; the signals u(t), V₁(t), V₂(t), and V₃(t) all having a workingrange of 0 to
 100. 26. The controller of claim 22, 23, 24, or 25, inwhich said split-range setter includes individual controls that can beset freely within said split range to produce controller outputs V₁(t),V₂(t) and V₃(t) that provide a deadband between said controller outputs,an overlap thereof, or a continuum from one to the other.
 27. Thecontroller of claim 19, in which the controller outputs V₁(t), V₂(t) andV₃(t) are re-scalable from the 0 to 100 range to an engineering valuerange by using a linear function.
 28. The controller of claim 19, inwhich the controller outputs V₁(t), V₂(t) and V₃(t) are arranged toinclude selectable control limits or control constraints.
 29. A1-input-M-output controller for a process having a process output whichis controlled by M controller outputs V₁(t), V₂(t), . . . , V_(M)(t)applied to M actuators whose outputs are the inputs of said process,said controller including a neural network comprising: a) an error inputrepresentative of the difference between a predetermined setpoint andsaid process output; b) a normalization unit for normalizing said errorinput to a predetermined range of values; c) a scaling function forscaling said normalized error input to produce a value E₁of the form$\begin{matrix}{{E_{1} = {\frac{K_{c1}}{T_{c1}}{N\left( {e(t)} \right)}}},} & {{{for}\quad{all}\quad u\quad(t)} \in \left\lbrack {0,R_{1}} \right\rbrack} \\{{E_{1} = {\frac{K_{c2}}{T_{c2}}{N\left( {e(t)} \right)}}},} & {{{for}\quad{all}\quad u\quad(t)} \in \left\lbrack {R_{2},R_{3}} \right\rbrack} \\\ldots & \quad \\{{E_{1} = {\frac{K_{cM}}{T_{cM}}{N\left( {e(t)} \right)}}},} & {{{for}\quad{all}\quad u\quad(t)} \in \left\lbrack {R_{{2M} - 2},100} \right\rbrack}\end{matrix}$ or equivalent thereof, in which 0<R₁≦100, 0≦R₂<100,0<R₃≦100, R₂<R₃, . . . , 0≦R_(2M-2)<100, M=3, 4, 5, 6 . . . ; K_(c1),K_(c2), . . . , K_(cM) are the controller gains; T_(c1), T_(c2), . . . ,T_(cM) are the user-selected time constants of said process; N(·) is thenormalization function of said normalization unit; and e(t) is the valueof said error input at any given time; d) a layer of input neuronshaving as their inputs successively time-delayed values of E₁; e) alayer of hidden neurons each having as its output the sum ofindividually weighted ones of said successively time-delayed values ofE₁; f) an output neuron having as its output the sum of a first functionof the individually weighted outputs of said hidden neurons; g) acontrol signal u(t) which is at least in part the denormalized value ofa second function of the output of said output neuron; and h) asplit-range setter arranged to produce from the said control signal thesaid controller outputs V₁(t), V₂(t), . . . , V_(M)(t).
 30. Thecontroller of claim 29, in which said control signal u(t) is the sum ofsaid denormalized value and the value K_(cx)e(t), or an equivalentthereof.
 31. The controller of claim 29, in which said first and secondfunctions are both of the form $\begin{matrix}{{{f(x)} = 0},} & {{{if}\quad x} < {- \frac{b}{a}}} \\{{{f(x)} = {{ax} + b}},} & {{{if} - \frac{b}{a}} \leq x \leq \frac{b}{a}} \\{{{f(x)} = 1},} & {{{if}\quad x} > \frac{b}{a}}\end{matrix}$ or an equivalent thereof, wherein a is an arbitraryconstant and b=½.
 32. The controller of claim 29, in which said controlsignal is of the form: $\begin{matrix}{{{u(t)} = {{K_{c1}{e(t)}} + {100\left\lbrack {{a{\sum\limits_{j = 1}^{N}\quad{{h_{j}(n)}{q_{j}(n)}}}} + b} \right\rbrack}}},{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{1}} \right\rbrack}} \\{{{u(t)} = {{K_{c2}{e(t)}} + {100\left\lbrack {{a{\sum\limits_{j = 1}^{N}\quad{{h_{j}(n)}{q_{j}(n)}}}} + b} \right\rbrack}}},{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{2},R_{3}} \right\rbrack}} \\\ldots \\{{{u(t)} = {{K_{cM}{e(t)}} + {100\left\lbrack {{a{\sum\limits_{j = 1}^{N}\quad{{h_{j}(n)}{q_{j}(n)}}}} + b} \right\rbrack}}},{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{{2M} - 2},100} \right\rbrack}}\end{matrix}$ or equivalent thereof, in which 0<R₁≦100, 0≦R₂<100,0<R₃≦100, R₂<R₃, . . . , 0≦R_(2M-2)<100, M=3, 4, 5, 6 . . . ; K_(c1),K_(c2), . . . , K_(cM) are the controller gains; e(t) is said errorsignal; h_(j)(n) is the weighting factor for the jth hidden neuronoutput; and q_(j)(n) is the jth hidden neuron output.
 33. A1-input-M-output Proportional-Integral-Derivative (PID) controller for aprocess having a process output which is controlled by M controlleroutputs V₁(t), V₂(t), . . . , V_(M)(t) applied to M actuators whoseoutputs are the inputs of said process, said controller comprising: a)an error input representative of the difference between a predeterminedsetpoint and said process output; b) a control signal u(t) is, of theform:${{u(t)} = {K_{p}\left\{ {{e(t)} + {\frac{1}{T_{i}}{\int{{e(t)}{\mathbb{d}t}}}} + {T_{d}\frac{\mathbb{d}{e(t)}}{\mathbb{d}t}}} \right\}}},$or equivalent thereof, in which K_(p) is the proportional gain, T_(i) isthe integral time, and T_(d) is the derivative time; e(t) is the valueof said error input at any given time; and c) a split-range setterarranged to produce from the said control signal the said controlleroutputs V₁(t), V₂(t), . . . , V_(M)(t).
 34. The controller of claim 33,in which said control signal is of the form: $\begin{matrix}{{{u(t)} = {K_{p1}\left\{ {{e(t)} + {\frac{1}{T_{i1}}{\int{{e(t)}{\mathbb{d}t}}}} + {T_{d1}\frac{\mathbb{d}{e(t)}}{\mathbb{d}t}}} \right\}}},{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{1}} \right\rbrack}} \\{{{u(t)} = {K_{p2}\left\{ {{e(t)} + {\frac{1}{T_{i2}}{\int{{e(t)}{\mathbb{d}t}}}} + {T_{d2}\frac{\mathbb{d}{e(t)}}{\mathbb{d}t}}} \right\}}},{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{2},R_{3}} \right\rbrack}} \\\ldots \\{{{u(t)} = {K_{pM}\left\{ {{e(t)} + {\frac{1}{T_{iM}}{\int{{e(t)}{\mathbb{d}t}}}} + {T_{dM}\frac{\mathbb{d}{e(t)}}{\mathbb{d}t}}} \right\}}},{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{{2M} - 2},100} \right\rbrack}}\end{matrix}$ or an equivalent thereof, in which K_(p1), K_(p2), . . . ,K_(pM), T_(i1), T_(i2), . . . , T_(iM), T_(d1), T_(d2), . . . , T_(dM)are user-selectable parameters, 0<R₁≦100, 0≦R₂<100, 0<R₃≦100, R₂<R₃, . .. , 0≦R_(2M-2)<100, M=3, 4, 5, 6 . . . ; and e(t) is said error signal.35. The controller of claim 29 or 33, in which said split-range setterproduces the said controller outputs of the form: $\begin{matrix}{{{V_{1}(t)} = {{{- 100}\frac{u(t)}{R_{1}}} + 100}},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{1}} \right\rbrack}} \\{{{V_{1}(t)} = 0},\quad{{{for}\quad{all}\quad{u(t)}} \in \left( {R_{1},100} \right\rbrack}} \\{{{V_{2}(t)} = {{{- 100}\frac{{u(t)} - R_{3}}{R_{2} - R_{3}}} + 100}},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{2},R_{3}} \right\rbrack}} \\{{{V_{2}(t)} = 0},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{2}} \right)}} \\{{{V_{2}(t)} = 100},\quad{{{for}\quad{all}\quad{u(t)}} \in \left( {R_{3},100} \right\rbrack}} \\\ldots \\{{{V_{M}(t)} = {{{- 100}\frac{{u(t)} - R_{{2M} - 2}}{100 - R_{{2M} - 2}}} + 100}},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{{2M} - 2},100} \right\rbrack}} \\{{{V_{M}(t)} = 100},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{{2M} - 2}} \right)}} \\{{{{where}\quad M} = 3},5,7,{\ldots\quad;}} \\{{{V_{M}(t)} = {{{- 100}\frac{{u(t)} - 100}{R_{{2M} - 2} - 100}} + 100}},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{{2M} - 2},100} \right\rbrack}} \\{{{V_{M}(t)} = 0},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{{2M} - 2}} \right)}}\end{matrix}$ where M=4, 6, 8, . . . ; or equivalent thereof, in which0<R₁≦100, 0≦R₂<100, 0<R₃≦100, R₂<R₃, . . . , 0≦R_(2M-2)<100; the signalsu(t), V₁(t), V₂(t), . . . , V_(M)(t) all having a working rang of 0 to100.
 36. The controller of claim 29 or 33, in which said split-rangesetter produces the said controller outputs of the form: $\begin{matrix}{{{V_{1}(t)} = {{100\frac{{u(t)} - S_{1}}{S_{1}}} + 100}},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,S_{1}} \right\rbrack}} \\{{{V_{1}(t)} = 100},\quad{{{for}\quad{all}\quad{u(t)}} \in \left( {S_{1},100} \right\rbrack}} \\{{{V_{2}(t)} = {{{- 100}\frac{{u(t)} - S_{3}}{S_{2} - S_{3}}} + 100}},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {S_{2},S_{3}} \right\rbrack}} \\{{{V_{2}(t)} = 0},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,S_{2}} \right)}} \\{{{V_{2}(t)} = 100},\quad{{{for}\quad{all}\quad{u(t)}} \in \left( {S_{3},100} \right\rbrack}} \\\ldots \\{{{V_{M}(t)} = {{{- 100}\frac{{u(t)} - 100}{S_{{2M} - 2} - 100}} + 100}},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {S_{{2M} - 2},100} \right\rbrack}} \\{{{V_{M}(t)} = 0},\quad{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,S_{{2M} - 2}} \right)}}\end{matrix}$ or equivalent thereof, in which 0<S₁≦100, 0≦S₂<100,0<S₃≦100, S₂<S₃, . . . , 0≦S_(2M-2)<100, M=3, 4, 5, 6, . . . ; S_(j)being equivalent to R_(j), j=1, 2, 3, 4, . . . ; the signals u(t),V₁(t), V₂(t), . . . , V_(M)(t) all having a working range of 0 to 100.37. A 1-input-M-output controller for a process having a process outputwhich is controlled by M controller outputs V₁(t), V₂(t), . . . ,V_(M)(t) applied to M actuators whose outputs are the inputs of saidprocess, said controller comprising: a) an error input representative ofthe difference between a predetermined setpoint and said process output;b) a control signal u(t) is of the form:u(t)=ƒ(e(t), t, P ₁ , P ₂ , . . . P ₁), or equivalent thereof, in whicht is time, P₁, P₂, . . . , P₁ are the controller tuning parameters; ande(t) is the value of said error input at any given time. c) asplit-range setter arranged to produce from the said control signal thesaid controller outputs V₁(t), V₂(t), . . . , V_(M)(t).
 38. Thecontroller of claim 37, in which the controller gains P₁₁, P₁₂, P₁₃, . .. , P_(1M) are of the form: $\begin{matrix}{{P_{11} = {K_{1}\frac{R_{1}}{100}}},} \\{{P_{12} = {K_{2}\frac{R_{3} - R_{2}}{100}}},} \\{{P_{13} = {K_{3}\frac{R_{5} - R_{4}}{100}}},} \\{\ldots} \\{{P_{1M} = {K_{M}\frac{100 - R_{{2M} - 2}}{100}}},}\end{matrix}$ or equivalent thereof, in which M=4, 5, 6, . . . ; R₂<R₃,R₄<R₅, R_(2M-2)<R_(2M-1), and K₁, K₂, K₃, . . . , K_(M) areuser-selectable controller gains for the corresponding controlleroutputs V₁(t), V₂(t), V₃(t), . . . , V_(M)(t), respectively.
 39. Thecontroller of claim 38, in which the controller gains P₁₁, P₁₂, P₁₃, . .. , P_(1M) are of the form: $\begin{matrix}{{P_{1i} = \frac{P_{1,{{2i} - 2}} + P_{1,{{2i} - 3}}}{2}},} \\{{P_{2i} = \frac{P_{2,{{2i} - 2}} + P_{2,{{2i} - 3}}}{2}},} \\{\ldots} \\{{P_{l,i} = \frac{P_{l,{{2i} - 2}} + P_{l,{{2i} - 3}}}{2}},}\end{matrix}$ or an equivalent thereof, in which i=2, 3, 4, . . . , M;u(t) is inside the signal overlap area if the signals V_(i-1)(t) andV_(i)(t) overlap; or u(t) is inside the deadband if a deadband betweenthe signals V_(i-1)(t) and V_(i)(t) exist.
 40. The controller of claim37, in which said control signal is of the form:u(t)=ƒ(e(t), t, P ₁₁ , P ₂₁ , . . . , P ₁₁), for all u(t)ε[0, R ₁]u(t)=ƒ(e(t), t, P ₁₂ , P ₂₂ , . . . , P ₁₂), for all u(t)ε[R ₂ , R ₃]u(t)=ƒ(e(t), t, P ₁₃ , P ₂₃ , . . . , P ₁₃), for all u(t)ε[R ₄ , R ₅]u(t)=ƒ(e(t), t, P _(1M) , P _(2M) , . . . , P _(1M)), for all u(t)ε[R_(2M-2), 100] or an equivalent thereof, in which P₁₁, P₁₂, . . . ,P_(1M), P₂₁, P₂₂, . . . , P_(2M), . . . P₃₁, P₃₂, . . . , P_(3M), . . ., P₁₁, P₁₂, . . . , P_(1M) are user-selectable parameters, 0<R₁≦100,0≦R₂<100, 0<R₃≦100, 0≦R₄<100, 0<R₅≦100, R₂<R₃, R₄<R₅, . . . ,R_(2M-2)<R_(2M-1), 0≦R_(2M-2)<100, M=4, 5, 6 . . . ; and e(t) is saiderror signal.
 41. The controller of claim 37, in which said split-rangesetter produces the said controller outputs of the form: $\begin{matrix}{{{V_{1}(t)} = {{{- 100}\frac{u(t)}{R_{1}}} + 100}},} & {{{for}\quad{all}{\quad\quad}{u(t)}} \in \left\lbrack {0,R_{1}} \right\rbrack} \\{{{V_{1}(t)} = 0},} & {{{for}\quad{all}\quad{u(t)}} \in \left( {R_{1},100} \right\rbrack} \\{{{V_{2}(t)} = {{{- 100}\frac{{u(t)} - R_{3}}{R_{2} - R_{3}}} + 100}},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{2},R_{3}} \right\rbrack} \\{{{V_{2}(t)} = 0},} & {{{for}\quad{all}{\quad\quad}{u(t)}} \in \left\lbrack {0,R_{2}} \right)} \\{{{V_{2}(t)} = 100},} & {{{for}\quad{all}\quad{u(t)}} \in \left( {R_{3},100} \right\rbrack} \\{{{V_{3}(t)} = {{{- 100}\frac{{u(t)} - R_{4}}{R_{5} - R_{4}}} + 100}},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{4},R_{5}} \right\rbrack} \\{{{V_{3}(t)} = 100},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{4}} \right)} \\{{{V_{3}(t)} = 0},} & {{{for}\quad{all}{\quad\quad}{u(t)}} \in \left( {R_{5},100} \right\rbrack} \\\ldots & \quad \\{{{V_{M}(t)} = {{{- 100}\frac{{u(t)} - R_{{2M} - 2}}{100 - R_{{2M} - 2}}} + 100}},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{{2M} - 2},100} \right\rbrack} \\{{{V_{M}(t)} = 100},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{{2M} - 2}} \right)} \\{{{{where}\quad M} = 5},7,9,{\ldots\quad;}} & \quad \\{{{V_{M}(t)} = {{{- 100}\frac{{u(t)} - 100}{R_{{2M} - 2} - 100}} + 100}},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{{2M} - 2},100} \right\rbrack} \\{{{V_{M}(t)} = 0},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{{2M} - 2}} \right)}\end{matrix}$ where M=4, 6, 8, . . . ; or equivalent thereof, in which0<R₁≦100, 0≦R₂<100, 0<R₃≦100, 0≦R₄<100, 0<R₅≦100, R₂<R₃, R₄<R₅, . . . ,0≦R_(2M-2)<100; the signals u(t), V₁(t), V₂(t), . . . , V_(M)(t) allhaving a working range of 0 to
 100. 42. The controller of claim 37, inwhich said split-range setter produces the said controller outputs ofthe form: $\begin{matrix}{{{V_{1}(t)} = {{100\frac{{u(t)} - S_{1}}{S_{1}}} + 100}},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,S_{1}} \right\rbrack} \\{{{V_{1}(t)} = 100},} & {{{for}\quad{all}\quad{u(t)}} \in \left( {S_{1},100} \right\rbrack} \\{{{V_{2}(t)} = {{{- 100}\frac{{u(t)} - S_{3}}{S_{2} - S_{3}}} + 100}},} & {{{for}\quad{all}{\quad\quad}{u(t)}} \in \left\lbrack {S_{2},S_{3}} \right\rbrack} \\{{{V_{2}(t)} = 0},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,S_{2}} \right)} \\{{{V_{2}(t)} = 100},} & {{{for}\quad{all}\quad{u(t)}} \in \left( {S_{3},100} \right\rbrack} \\{{{V_{M}(t)} = {{{- 100}\frac{{u(t)} - 100}{S_{{2M} - 2} - 100}} + 100}},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {S_{{2M} - 2},100} \right\rbrack} \\{{{V_{M}(t)} = 0},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,S_{{2M} - 2}} \right)}\end{matrix}$ or equivalent thereof, in which 0<S₁≦100, 0≦S₂<100,0<S₃≦100, 0≦S₄<100, 0<S₄<100, 0<S₅≦100, S₂<S₃, S₄<S₅, . . . ,0≦S_(2M-2)<100, M=3, 4, 5, 6, . . . ; the signals u(t), V₁(t), V₂(t), .. . , V_(M)(t) all having a working range of 0 to
 100. 43. Thecontroller of claim 35, 36, 41, or 42, in which said split-range setterincludes individual controls that can be set freely within said splitrange to produce controller outputs V₁(t), V₂(t), . . . , V_(M)(t) thatprovide a deadband between said controller outputs, an overlap thereof,or a continuum from one to the other.
 44. The controller of claim 29, 33or 37, in which the controller outputs V₁(t), V₂(t), . . . , V_(M)(t)are re-scalable from the 0 to 100 range to an engineering value range byusing a linear function.
 45. The controller of claim 29, 33 or 37, inwhich the controller outputs V₁(t), V₂(t), . . . , V_(M)(t) are arrangedto include selectable control limits or control constraints.
 46. Asingle-input-multi-output (SIMO) controller for a process having aprocess output which is controlled by controller outputs V_(r1)(t),V_(r2)(t), V_(s1)(t), and V_(s2)(t) applied to actuators A_(r1), A_(r2),A_(s1) and A_(s2) whose outputs are the inputs of said process, saidcontroller comprising: a) an error input representative of thedifference between a predetermined setpoint and said process output; b)a control signal u(t) is of the form:u(t)=ƒ(e(t), t, P ₁ , P ₂ , . . . , P ₁), or equivalent thereof, inwhich t is time, P₁, P₂, . . . , P₁ are the controller tuningparameters; e(t) is the value of said error input at any given time. c)a combined split-range setter arranged to produce from the said controlsignal the said controller outputs V_(r1)(t), V_(r2)(t), V_(s1)(t), andV_(s2)(t).
 47. The controller of claim 46, in which said combinedsplit-range setter produces the said controller outputs of the form:$\begin{matrix}{{{V_{r1}(t)} = {{{- 100}\frac{u(t)}{R_{1}}} + 100}},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{1}} \right\rbrack} \\{{{V_{r1}(t)} = 0},} & {{{{for}\quad{all}\quad{u(t)}} \in \left( {R_{1},100} \right\rbrack}\quad} \\{{{V_{r2}(t)} = {{{- 100}\frac{{u(t)} - 100}{R_{2} - 100}} + 100}},} & {{{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {R_{2},100} \right\rbrack}{\quad\quad}} \\{{{V_{r2}(t)} = 0},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,R_{2}} \right)} \\{{{V_{s1}(t)} = {{100\frac{{u(t)} - S_{1}}{S_{1}}} + 100}},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,S_{1}} \right\rbrack} \\{{{V_{s1}(t)} = 100},} & {{{for}\quad{all}\quad{u(t)}} \in \left( {S_{1},100} \right\rbrack} \\{{{V_{s2}(t)} = {{{- 100}\frac{{u(t)} - 100}{S_{2} - 100}} + 100}},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {S_{2},100} \right\rbrack} \\{{{V_{s2}(t)} = 0},} & {{{for}\quad{all}\quad{u(t)}} \in \left\lbrack {0,S_{2}} \right)}\end{matrix}$ or equivalent thereof, in which 0<R₁≦100, 0≦R₂<100,0<S₁≦100, 0<S₂<100, the signals u(t), V_(r1)(t), V_(r2)(t), V_(s1)(t),and V_(s2)(t) all having a working range of 0 to
 100. 48. The controllerof claim 47, in which said combined split-range setter includesindividual controls that can be set freely within said split ranges toproduce controller outputs V_(r1)(t), V_(r2)(t), V_(s1)(t), andV_(s2)(t) that provide a deadband between said controller outputs, anoverlap thereof, or a continuum from one to the other.
 49. Thecontroller of claim 46, in which the controller outputs V_(r1)(t),V_(r2)(t), V_(s1)(t), and V_(s2)(t) are re-scalable from the 0 to 100range to an engineering value range by using a linear function.
 50. Thecontroller of claim 46, in which the controller outputs V_(r1)(t),V_(r2)(t), V_(s1)(t), and V_(s2)(t) are arranged to include selectablecontrol limits or control constraints.
 51. The controller of claim 1, 8,19, 29, 33, 37, or 46, in which said controller is a computer programembodied in a digital medium.